Categories
josephscott

Joyent/TextDrive’s Really, Really, Really Bad Netperf Benchmarks

I came across a Scales With Rails presentation at http://www.scalewithrails.com/downloads/ScaleWithRails-April2006.pdf that focused on scaling Ruby on Rails on Solaris instead of FreeBSD. I’m assuming that they were using FreeBSD at least in part because Joyent had purchased TextDrive which uses FreeBSD. So I’m just cruising through this PDF to see what sort of things they mention and then things got very strange on page 40 of the PDF.

Before I get into the details of page 40 go take a look at page 39. In this section they are talking about the limitations of Ethernet, specifically the gigabit variety. Page 39 provides the simple math, 1Gbps = 125MB/sec and 100Mbps = 12.5 MB/sec. So with that in mind take a look at page 40, where you find results of two netperf runs, one from FreeBSD to FreeBSD and another from Solaris to Solaris, both using gigabit ethernet. These results look to be quotes from Netperf benchmarks of FreeBSD versus Solaris. I won’t comment on the Solaris numbers as I don’t have much experience with Solaris and I don’t have any Solaris systems to run similar tests on. I do however have some FreeBSD systems to run these tests on and I have to say that I find their FreeBSD results to be a complete joke. I’m almost tempted to call them a lie. I’m specifically interested in the FreeBSD to FreeBSD over a switch results, which they show as:

pacific# /usr/local/netperf/netperf -fM -H private.comox.textdrive.com -tTCP_STREAM – -m1472
TCP STREAM TEST to private.comox.textdrive.com
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    MBytes/sec

65536  32768   1472    10.02       4.86

So out of the theoretical 125MB/sec (which you’ll never be able to reach, but that is another story) they were only able to get 4.86MB/sec. Only 3.888% of the absolute max? I was immediately suspect of these numbers, so installed netperf on two old FreeBSD boxes. The client box is a Dell Optiplex GX300 (P3-800 256MB) running FreeBSD 6.1-RC1 with a 100Mbit network card. The server side for my netperf test (neptune) is a Dell PowerEdge 4400 (P3 XEON-800 512MB) running FreeBSD 6.1-BETA1 with a 100Mbit network card. These are plain installs of FreeBSD on old hardware, nothing exciting. The network path between these two systems runs through two Netgear gigabit switches. I ran the same test they did more than a dozen times and always got results back at more than 11MB/sec. Here is the fastest result from my test runs:

> /usr/local/netperf/netperf -fM -H neptune -tTCP_STREAM – -m1472
TCP STREAM TEST to neptune
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    MBytes/sec

 65536  32768   1472    10.00      11.21

Here is the slowest result from my test runs:

> /usr/local/netperf/netperf -fM -H neptune -tTCP_STREAM – -m1472
TCP STREAM TEST to neptune
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    MBytes/sec

 65536  32768   1472    10.00      11.07

I don’t understand how they got 4.86MB/sec with gigabit and I got 11.07MB/sec with 100Mbit ethernet. The difference is just huge, 6.21MB/sec, well over twice their throughput. Unfortunately I don’t have spare FreeBSD systems with gigabit network cards to test against, but based on my 100Mbit tests I’m going to assume that they would be much faster than TextDrive’s 4.86MB/sec. What may be even more disturbing is that the folks at TextDrive and Joyent have been running their systems in this condition and didn’t see any large red flags go into the air indicating that they were doing something wrong.

A few minutes looking around on Google revealed that this came from Jason Hoffman on a post to TextDrive’s blog: Comparative netperf (network performance) of FreeBSD versus Solaris on identical hardware. I’d leave a comment for Jason on that post but there doesn’t appear to be any way to leave a comment. A post on the Joyent blog: Can you check my math? (Perhaps we’ll also call this, “What’s in a web server”?) posted on the same day, also by Jason, does seem to allow for comments so I’ll leave one pointing to this post.

I just can’t get over how completely bogus their numbers are. I can’t believe that they would then use them in a claim about how poorly FreeBSD does in netperf tests. Just amazing.

If you know what is going here please let me know. If I’ve done something wrong in my tests please point it out, because right now it looks like Jason Hoffman/TextDrive/Joyent need to go hire new sysadmins.

7 replies on “Joyent/TextDrive’s Really, Really, Really Bad Netperf Benchmarks”

I’ll bet $1 that the problem with their configuration is that their switch and ethernet cards do not agree on their auto-sensing of speed or duplex, causing such issues. There should be a boat load of errors in the syslog about collisions on at least one of the systems. The solution is to get better hardware or to hard-wire either the switch or NIC or both to the proper speed/duplex settings.

FWIW, I just ran this test from a 6.0/i386 box to a 6.1/amd64 box and got these numbers:


/usr/local/netperf/netperf -fM -H yertle -tTCP_STREAM -- -m1472
TCP STREAM TEST to yertle
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. MBytes/sec

65536 32768 1472 10.00 53.37

They’re both running gigabit NICs thru a cheap-o Dell unmanaged switch. And they’re not idle boxes, either…

I guess Jason’s math is as bas as his attitude and as bad as Textdrive’s support. They are full of themselves, with no reason other than hype. If the don’t get their act together … you know what they say: you can fool some people sometime….

Could you benchmark other versions of FreeBSD, let’s say 5.4 or 5.5 or even 4.x?

Jason might claim that the switch to Solaris was done a while ago, before 6.0 became production.

Oh, just checked the disclaimer:

Disclaimer: these were with FreeBSD 5. FreeBSD 6 doesn’t seem to have the same issues

Netperf server running on yumi.textdrive.com (solaris nevada build) and comox.textdrive.com (freebsd 5.4).

Tested from emi.textdrive.com (solaris) and pacific.textdrive.com (freebsd)

Leave a Reply

Your email address will not be published. Required fields are marked *