-
Network tweaking
Hello,
I am developing a high throughput webserver which is currently running on Ubuntu Server 12.04.
I have a couple of problems / questions I have been running into.
My first question is I believe that I am going to have to tweak a few of the sysctl settings in order to achieve the throughput I want(which as of right now is about 6000-8000 transactions a second on my application server, and much more on a server running HAProxy for load balancing). I am looking to minimize delay as much as possible, while keeping stability(not dropping connections). I have been reading a few different sites on some settings to tweak. A few of the more popular ones I have run into have been:
net.core.rmem_max
net.core.rmem_default
net.core.wmem_max
net.core.wmem_default
net.ipv4.tcp_fin_timeout
tcp_tw_recycle
tcp_tw_reuse
However most articles I read do say what should be tweaked under what circumstances. I have tried a few of these, but have not noticed any differences. Does anyone have any experience with running a high request server, or can anyone explain under what circumstances some of these values should be changed, and to what?
I was also wondering if anyone had any suggestions for network monitoring tools. I have been running some tests, and seen some strange results, which I believe is the result of bandwidth usage, and would like to get as much information as possible. Right now pretty much the only test tool I have been using is iperf, but I would like to know more what is happening when my server is running.
Thank you
-
-
Unfortunately, a lot of that does not pertain to me, and I notice now I left out some important information. I am not using Apache or MySQL. I created my web server in C++, and I am using mongodb for a database. It's a fairly simple server, it receives a GET request, parses out some information, does a couple of database look ups, and returns a response. Right now the response is about 15kb.