Tuning Linux for performance

From: Ashwani Wason <ashwas#gmail.com>
Date: Mon, 15 Jun 2009 12:37:56 -0700


Willy,

In one of the relatively recent posts you mentioned, "The rest is "just" kernel parameter tuning. I'm thinking about writing a tuning guide for 2.6 kernels. I've once again been contacted by a big site this week-end which was dying under load because the sysctls had not been tuned, and that's a shame :-/".

I am wondering if you ever managed to create that guide. I am planning to evaluate HAProxy and compare its performance with one of my own TCP proxy on Linux. So far for a target benchmark and a prototype (simple data copy from clients to the servers and back) I have been able to achieve ~800 mbps (reported by application, not including TCP/IP/link headers) with a single process (no threads) instance on 2.6.18 on a 2.6GHz CPU (machine with four CPUs) and two e1000g NICs (one for client and one for server). I have done the usual stuff that I required to get this to work (bind the interrupts from NICs to two CPUs, bind the process to the third CPU, do TCP tuning like syn backlog, tw reuse/recycle/buckets, tcp wmem/rmem, driver tuning such as rx rings, etc.) The link is gbps so obviously my expectation is to get as close to gbps as possible. Routing tests have shown that I should be able to do ~970mbps. However, with two processes I am unable to reach that limit. Without going into much details as to what exactly is happening (which I don't mind going into if useful), I was looking for information on how you are tuning for gigabit links.

Thanks,
- Ashwani Received on 2009/06/15 21:37

This archive was generated by hypermail 2.2.0 : 2009/06/15 21:45 CEST