Recently I’ve opened a new account with Linode in anticipation of moving a server across to them. So far they’ve been pretty good. My current provider is Slicehost, who are also excellent and whose reliability has been utterly flawless — I have servers with ~500 days of uptime with them. I can recommend both services.
As a sort of quick test for Linode performance, I decided to run ab against the new server from my desktop here at home. I fire it up for the first run: 100 requests, 10 connections. It performs well. Next I jump to the next order of magnitude: 1000 requests, 100 connections. It times out.
In doing so it also kills off the SSH sessions I have logged into the Linode server.
After some experimentation, it becomes clear that the magic number of connections is 32. If I have 32 or more connections through ab, the connection locks up.
I opened a ticket with Linode and began trying to nut it out. I checked the iptables settings, the nginx settings, various kernel TCP/IP settings. All to no avail.
Today I tried out the 1000/100 test from another server I control and voila, it works fine. So it turns out that the limit on connections wasn’t at Linode’s end, it was at my ISP (iinet). They must have introduced this recently as I recall performing similar “sanity test” benchmarks on remote servers before.
Anyhow. The moral of the story is: I shouldn’t have thought unkind thoughts about Linode. It wasn’t their fault. However I offer as a suggestion that in future cases like these, they run ab from their side to eliminate ISP middlemen problems.