![]() |
News | Profile | Code | Photography | Looking Glass | Projects | System Statistics | Uncategorized |
Blog |
I am assuming that CONFIG_NO_HZ is the cuplrit here, but I'm not sure.
A little over a week ago, I upgraded nonce, my dedicated server in Tampa, FL, to Linux 2.6.22 (the linux-image-2.6.12-1-686 package provided in the Debian GNU/Linux distribution). There are just a few changes from the old kernel, 2.6.18, one of which is dynaticks (CONFIG_NO_HZ), a patch that allows the kernel to only create timer ticks when needed. It's supposed to improve power consumption and efficiency, which translates as lower CPU utilization (to me, at least).
A little background is required, first. nonce, an Intel Celeron 2.0GHz-powered i386 box with 512MiB of RAM and a 100Mb Internet connection, runs the testing distribution of Debian GNU/Linux. It acts as a public NTP server (pool.ntp.org), SMTP/IMAPS server for prolixium.com (and a few others), DNS server, OpenVPN tunnel aggregator, and Quake 4 server. Other than having quite a bit in memory at any given time, it's not a very loaded box. CPU usage typically sits around 8-10%.
After upgrading to 2.6.22, it was apparent that CPU usage had risen dramatically, to around 35-38% when idle. Shutting down the Quake 4 server returns the CPU load to around 5%, so it's definitely the culprit, but why?
I suspect that the q4ded binary is just poorly-coded. The load average has risen, too, as has the average CPU temperature. It's certainly not a measurement anomaly.
New comments are currently disabled for this entry.
![]() ![]() ![]() ![]() ![]() |
This HTML for this page was generated in 0.001 seconds. |
I noticed a similar rise in CPU usage after upgrading to a tickless kernel.
In my case, the culprit was a custom perl script using threads and sockets.
I am suspicious that select() is keeping the cpu awake for some reason.