One of my VPS' spikes to very high load for absolutely no reason. It seems like apache might be the cause, however top doesnt show any process' in particular that are causing the high load ... it just spikes up with absolutely no process' eating the resources.
If no one is loading a page on the website hosted by the VPS, the load is fine. I can navigate my way through WHM and the load stays down. However if I click on apache status, this takes about 30 seconds to load and the load spikes significantly - however it doesn't stay up and it doesn't go too high. After apache status has loaded, the load goes back to normal. Now, if I were to load a page of the website or even navigate to the website. The load spikes very high and the page takes about a minute to load. Again, if I wait for the page to finish loading the load goes down.
I have recently rebuilt and recompiled both apache php in hopes that maybe it would fix itself - no dice.
I have tried multiple pages, even blank pages. They all take around 30 seconds to load and cause a small spike in load.
Last edited by andrei155; 04-22-2011 at 04:07 PM.
█ No Overselling Guarantee | Now Includes a Free Domain
█ Shared Hosting • Reseller Hosting • VPS Hosting
█ BLD Hosting - Web Hosting | Web Hosting Blog
Check the httpd error and access logs for a start, anything there? What does the status page for apache show when it finally loads? What do you see if you type dmesg? Any firewall issues? Dropped packets? I've seen apache act the same way when the firewall tables were full and started dropping packets (doubt this is your specific problem if you're on a VPS though, because it takes a lot of traffic to fill up the tables).
Dallas Colocation by Incero, 8 years and counting!
e: sales(at)incero(dot)com • 855.217.COLO (2656)
Colocation & Enterprise Servers, SATA/SAS/SSD, secure IPMI/KVM remote control, 100% U.S.A. Based Staff
SSAE 16, SAS70, Redundant Power & Network, Fully Diverse Fiber
This solved absolutely everything! Do you mind explaining a little more... I'm baffled.
Each time someone visits websites on your server, Apache needs to open one or more log files. It just happened that one of your log files grew so large that Apache was unable to open it and in a way put the apache worker in limbo/stalled state. Opening files is a bit complex and involves "mapping" the file into virtual memory (address space). Address space is very limited on 32-bit machines. This wouldn't happen on 64-bit (I always recommend 64-bit OS to my clients even when they only need 512MB memory allocations).
The technical details are very involved. But you can avoid this by running logrotate against /etc/httpd/logs so it doesn't happen again.