[support] CPU usage

Jamie Holly hovercrafter at earthlink.net
Thu May 14 18:27:34 UTC 2009



Daniel Carrera wrote:
>
> That said, I would like to better understand what "500 HTTP connections" 
> means. If you get a single web page that has one HTML file, two images 
> and two CSS files, is that one HTTP connection or five? In other words, 
> does "500 HTTP connections" equate to 500 users or 100?
>
>   
Each request to the server is considered a connection. So if you view 
the front page and you have the index file (index.php), 3 CSS files, 4 
JS files and 10 images that would amount to 18 connections. That's why 
things like CSS and JS aggregation/compression help out so much. Also 
other tuning methods when it comes to themes, such as using CSS sprites 
to handle most of the images.

Op-code caching can help a lot in this situation. Even if 10% of those 
connections are only for the actual Drupal page, that's still 50 hits at 
once. That also means 50 times that the server has to read in all the 
source files that makes up Drupal, then compile them over to the op-code 
that computers understand and execute it.
> Also, I have no idea if 1000 HTTP connections is a reasonable 
> configuration or not.
>
>   
That's one of the biggest variables their is when it comes to server 
tuning. For shared hosting a setting that high is about par, though it 
isn't optimal. Yeah they are offering server side scripting like PHP, 
but they are tuned more to being a straight static server and can handle 
some server side requests in there. Basically its the standard operation 
of hosting companies when it comes to shared packages. Hosting companies 
do keep those settings high so they can find out who is taking up the 
most resources on a server. Then they have a selling point for getting 
people to upgrade (chalk that up as one of the things I learned working 
for a hosting company years ago).

If the server is starting to choke at 500 connections, then ideally it 
would be tuned to a smaller portion of that. I would say around 300-400 
connections. You also need to keep in mind things like MySQL running on 
the same server. Sure it can operate at 500 99% of the time, but if you 
end up getting fragmented tables or the query cache isn't primed then 
MySQL is going to need some processing power (as well as dozens of other 
things that run on a typical server) also and that will reduce the 
number of connections, so its always best to set the maximum connections 
on Apache to somewhere between 60 and 80% of what you see it handling, 
or do further benchmarking that alters site content and will invalidate 
things like query cache.

Overall though I would say you are at the point shared hosting isn't 
going to cut it anymore. I doubt they will change to much to accommodate 
your site since they also have to consider the other sites on the 
machine. I would start looking at going to some other hosting solution, 
be it dedicated, VPS or cloud.

Jamie Holly




More information about the support mailing list