[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