[hobbit] Hobbit Server performance
Hi,
Here is a solution in order to reduce I/O which is a lot consuming.
I load all the rrd and hist and webserver (cgi-bin,www,web,secure-cgi)
into different tmpfs (http://en.wikipedia.org/wiki/TMPFS).
This way everything is load into memory (cached).
free -k
total used free shared buffers cached
Mem: 6229400 5570816 658584 0 466896 4685444
I have 6G of memory and i set 2G for rrd and the other 2G for hist and
a very small one for the webserver 64M.
I check 2896 hosts. I have reduce my iowait% for 60-80% load to 0%. The webinterface is much faster.
I order to write data on the disk rsync data twice a day.
All of this does'nt execpt for having a local caching DNS daemon and
many other tunning parameters.
You can also:
reduce the timeout TCP/IP: echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_intvl echo 3000 > /proc/sys/net/ipv4/tcp_keepalive_time echo 0 > /proc/sys/net/ipv4/tcp_window_scaling echo 0 > /proc/sys/net/ipv4/tcp_sack echo 0 > /proc/sys/net/ipv4/tcp_timestamps
increase TCP/IP buffer echo 262144 > /proc/sys/net/core/rmem_max echo 262144 > /proc/sys/net/core/wmem_max
mount hobbit partition with noatime option and for more security
nodev,noexec,nosuidunilimit cpu,mem,files for hobbit user
increase inodes number on partition because of rrd and hist and
clientdata directory.Controls the memory
Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536
Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295
Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456 kernel.shmmax = 536870912
Regards, KaYa
On 8/29/07, Henrik Stoerner <henrik (at) hswn.dk> wrote:
On Wed, Aug 29, 2007 at 04:14:58PM -0500, Jeff Newman wrote:
The server is a DL360 G3 with two 3ghz processors and 2gb of RAM.
It does only hobbit and cricket (10 or so routers, so not a huge hit)I've noticed the following two things:
#1. I am constantly using 100% of my physical ram (no swap really)
Mem: 2075040k total, 2051928k used, 23112k free, 52172k buffers Swap: 0k total, 0k used, 0k free, 1744168k cached
is this normal? Not sure how to tell which process specifically is eating up the most RAM.
I think you're running Linux, right?
The "1744168k cached" normally goes in the "Mem:" line, not the "Swap:" line. And that's the clue to what's using your RAM: Linux uses available RAM as a variable-size disk cache; the disk cache grows until just about all of RAM is used. It usually makes sense, the cached data is a copy of data which is stored on disk, so when an application needs more memory, the diskcache memory can be freed instantly and allocated to the application.
Therefore, Linux boxes usually have very little "free" memory.
The "top" utility can sort processes by memory-usage. Also, "ps -vax" will tell you how much memory each process is using.
#2. I am consistantly running with 2-300 ports in TIME_WAIT
involving port 1984netstat -an | grep TIME | grep 1984 | wc -l
253
Im not sure if this is normal either, nor am I sure if it is bad or not?
It's not unusual, and quite harmless. The TIME_WAIT state happens when a socket is closed; the operating system keeps the socket around for some time (usually 20-30 secs, cannot remember what the Linux default is) to make sure that all packets destined for this socket have been received (there might be some duplicated/retransmitted packets still in transit when the socket is closed). This makes sure that a new connection using the same port will not see packets from the old connection.
Here is the output from some of the "bb" buttons at the top of my hobbit page. If anything stands out, any help would be apprieciated.
DNS statistics:
hostnames resolved : 138
succesful : 134
failed : 4
DNS lookups completed 1188421854.099983
9.239654Your DNS lookups are a bit slow - 9 seconds for 138 DNS lookups. Nothing critical, just a bit slower than I'd expect. Installing a local caching DNS daemon is a good way to eliminate this problem.
Regards, Henrik
To unsubscribe from the hobbit list, send an e-mail to hobbit-unsubscribe (at) hswn.dk
In <20070903193314.wf9klguno8is00so at web2.kaya.fr> xbgmsharp <xbgmsharp at gmail.com> writes:
Here is a solution in order to reduce I/O which is a lot consuming. I load all the rrd and hist and webserver (cgi-bin,www,web,secure-cgi) =20 into different tmpfs (http://en.wikipedia.org/wiki/TMPFS). This way everything is load into memory (cached). I have 6G of memory and i set 2G for rrd and the other 2G for hist and =20 a very small one for the webserver 64M.
That will obviously work, but you'd better be sure this server doesn't crash (or lose power). And it doesn't scale very well - it wouldn't work for me, since I have to plan on the number of hosts being monitored doubling approximately every 12-18 months.
To show what the new code does, have a look at http://www.hswn.dk/~henrik/rrd-ioload.png Before the new code was put into production, the server was running at 50% "io" load - but since this is a dual-CPU server and all of the I/O goes through one of the CPU's (Linux design choice), it was actually completely maxed out on the amount of I/O it could handle. After the RRD update caching, it uses 7-9 % I/O time.
Regards, Henrik
participants (2)
-
henrik@hswn.dk
-
xbgmsharp@gmail.com