General question about number of connections

Hi All,

I finally figured out how to read the “stats” that nginx provides,
they are basic, its awesome.

Our web server CPU and load get high when our traffic spikes and I’m
curious if someone could give me a “reasonable” quantification as to
its time to get another web server.

What’s holding up our web server are the PHP processes which are being
up by DB queries. We’re working on that.

Currently I noticed that around 2,000 connections, is our choking point,
that’s when CPU gets maxed and load is high. We have a dual core, dual
system with 8MB of RAM and 2.33 processors (AMD). Database is a
system (separate) so its processing is not interfering with the web

I’m just interested in hearing an opinion about the number of
is 2,000 connections per box considered “A LOT” and its time to get
box or is that considered very “LOW” and we really should continue
on optimizing PHP and DB processes (which needs to be done anyway). I
hate throwing more hardware at this unless I really have to.

We are running Nginx with 4 processes and its CPU utilization is very
compared to the PHP processes (via PHP FPM).

Just looking for any thoughts / opinions.


Depends what you’re measuring. In general, that’s quite a lot of
connections, something apache would never be able to handle properly.
Of course, if you’re handling 2000 connections with nginx but you only
have, say, 100 php clients going at one time, that might be workable,
especially if most of the open connections are just because of a long
keep-alive period.

If on the other hand you have 2000 copies of php running, even if each
isn’t doing a whole lot, you’re wasting a lot of resources by making
the OS task-switch between so many processes. If the reason you have
so many processes open is because you’re waiting on a slow database,
you could potentially speed up the web server by speeding up the
database server. Fewer open copies of php would lead to less cpu time
being wasted on task switching and related overhead. Of course, if
each php process is doing any tangible amount of work, then 2000
connections is probably too many.

In the end, my gut instinct is that 2000 connections to a server
handling php is quite a lot. Although quad core opteron @ 2.33ghz is
no slouch, I think you’ll find the intel core2quad to be quite a bit
faster, and should be cheaper as well. If it costs less than twice as
much as the core2quad, a dual quad xeon would be ideal; in my
experience it performs almost twice as fast as a core2quad, and
roughly three times as fast as what you’re using now…


This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs