You can imagine where it goes from here…

Bold font problem in Firefox on OSX

What is this? Only happens on one MacbookPro, the other with same version of OSX & Firefox is fine.

UPDATE: Fixed, I had a duplicate Arial regular font in my fontbook (indicated with a dot to the right of the font name), removed it and restarted Firefox and all is happy now!

Font rendering problem

January 5, 2007 Posted by | Tech | Leave a comment

Upgrading to gigabit ethernet

So the thing to look for is jumbo frame support, both on the switch and the NICs. Now what exactly is jumbo frame support? Depending on who you ask, it’s a network device that supports either a MTU of > 1500 (1500 is the historical limit & standard for 10/100 ethernet – incorrect) or a MTU >= 9000 (correct)

Then of course there’s the reality distortion field between manufacturer claims and The Real World(tm). This site lists some compliant hardware (jumbo frame clean).

What is the advantage of jumbo frame support? There is two major advantages:

  1. A 50% increase in throughput
  2. At the same time, a 50% decrease in CPU utilization

Almost sounds like a free lunch to me. And we all know there’s no such thing. For more detail see this great article.

So fortunately, my two Macbook Pros comes with Gigabit adapters that are Jumbo frame capable. For my Linux server I installed an Intel Pro/1000 GT desktop adapter that is rumoured to be well supported by the e1000 driver (contributed to and supported by actual Intel employees through Sourceforge).

As for a switch I decided on the Netgear GS108 which appears to support Jumbo frames too.

Configuring the MBP ethernet interfaces was easy as expected, see pic below. As for the linux server (running FC4), the card autoneg to 100Mbit/s and forcing it (ethtool -s eth1 speed 1000 duplex full autoneg off) into 1000Mbit causes it not to establish a link. I upgraded Ethtool 3 to Ethtool 5 to no avail. I also upgraded the e1000 kernel driver from what appears to be 7.0.33 to the latest 7.3.20. No luck. As a last resort I replaced the long’sh cheap ethernet cable with a shorter one that works with the MBP and.. voila! All cables involved in this episode are of Cat 5e persuasion (yes I need to get some Cat 6).

picture-1.png

So what does the actual benchmarks say? This is with iperf using a single thread:

Gigabit (1000Mbit) with MTU in brackets:

  • MBP (9000) -> Server (9000): 758Mbits/sec
  • MBP (9000) -> Server (1500): 480Mbit/sec
  • MBP (1500) -> Server (1500): 482Mbit/sec

FastEthernet (100Mbit) with MTU in brackets:

  • MBP (1500) -> Server (1500): 29.6Mbit/sec

Unstable with MTU 9000 using 100Mbit ethernet. The FastEthernet figures are surprisingly low, not quite sure why yet. As an aside, using 5 client side threads I could get to 970Mbit/s.

Eyeballing the CPU usage, during the MTU 9000 tests, the MBP averages around 50% on both cores while the server averages around 29%, during the MTU 1500 tests, the MBP averages around 70% on both cores while the server averages around 20% interestingly enough. I have not played with linux driver settings on the server at all, the e1000 driver allows for myriad of settings to be fiddled with (including NAPI).

More real world figures just from general usage, large file scp’s went from around 10Mbyte/s to around 14Mbyte/sec, totally unscientific of course 🙂 Not bad but not quite the improvement I was looking for either. The process on either side doesn’t appear to be disk or CPU bound, need to look into this more.

UPDATE: turns out the VIA Rhine linux driver doesn’t appreciate 9000MTU packages, spamming “oversized ethernet frame spanned multiple buffers” to the console and being generally unhappy with life. Which is unfortunate since this means my EPIA connected to my home theater & hifi doesn’t want to boot of the said linux server, using a NFS root fs and all unless I switch back to 1500MTU on the server. I see this problem mentioned a few places but no solutions. I’ll try upgrading the driver at some point 🙂

January 4, 2007 Posted by | Tech | Leave a comment

SMTP & POP3 on Mac OSX

I need a SMTP & POP3 server for the current project I’m working on. This would be a 10 minute operation to get going on Linux (in all fairness in part due to familiarity).

I selected Exim for SMTP and QPopper for POP3.

Exim

Pretty straight forward, installation process just like on any other *nix. Make sure $PREFIX/var/spool and $PREFIX/var/spool/log and $PREFIX/var/mail exists and are owned by the exim user (compiled into the binary, i just used account manager to add an exim user). Add sticky bit to /var/mail (chmod 1777).

QPopper

Less straight forward, configure with:

./configure –enable-debug –with-pam=pop3 –enable-standalone

The included pam sample file does not work for me, in the end i just copied /etc/pam.d/ftpd to /etc/pam.d/pop3

To test, fire it up on the command line with:

sudo /usr/local/sbin/popper 127.0.0.1:110 -d -t /var/log/qpopper.log -S

which should fork off and create a daemon process.

Write a StartupItem script based on CrashReporter as the documentation suggests, here’s my interpretation:

[xxx@xxx QPopper]$ cat QPopper
#!/bin/sh##
# QPopper Daemon
##. /etc/rc.common

StartService ()
{
        if [ "$QPOPPER:=-YES-}" = "-YES-" ]; then
                /usr/local/sbin/popper 0.0.0.0:110 -d -t /var/log/qpopper.log -S
	fi
}

StopService ()
{
        killall popper
}

RestartService ()
{
        StopService
        StartService
}

RunService "$1"

January 1, 2007 Posted by | Uncategorized | Leave a comment