Expected Server configuration for 100 users

Hi,
We are configuring the NGINX as a reverse proxy. We are expecting some
100
concurrent users or connections/sessions to be active at any given
moment of
time. Right now the server is acting as a reverse proxy for only one
application. These concurrent users will connect predominantly between
6:00
AM to 7:00 PM. Based on this what should be the RAM and CPU
configuration
for the NGINX server?

Also is there a guideline or a blog entry which we can use to
approximate
the system requirements of NGINX servers based on the concurrent user
load?
And also what will be preferred OS for NGINX server?


Have a nice day
Ragavie D

Posted at Nginx Forum:

Am 18.02.2015 um 16:56 schrieb ragavd [email protected]:

Hi,
We are configuring the NGINX as a reverse proxy. We are expecting some 100
concurrent users or connections/sessions to be active at any given moment of
time. Right now the server is acting as a reverse proxy for only one
application. These concurrent users will connect predominantly between 6:00
AM to 7:00 PM. Based on this what should be the RAM and CPU configuration
for the NGINX server?

What’s your hardware?

It all depends on a couple of configuration-parameters.
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers

If I’m correct, the default would be
8*4k=32k per connection, which would result in a memory usage of 3.2MB
with 100 concurrent connections.
Of course, nginx itself would also need some memory.
But nginx is quite thrifty IME.

Also is there a guideline or a blog entry which we can use to approximate
the system requirements of NGINX servers based on the concurrent user load?

I use the above formula as a guideline.

But I haven’t really had a situation where I was ever coming close to
hitting a limit on the hardware or our (very modest) worker_connections
default.
If we get DDoSed, it’s usually so much crap-traffic that we have to
route the affected network through a mitigation-service.

And also what will be preferred OS for NGINX server?

I think the Tier 1 platforms are:

  • FreeBSD 9+10 AMD64
  • Cent OS 6+7 AMD64
  • Ubuntu 12+14 AMD64

NGINX Plus supports a couple of additional platforms, but I would assume
the majority of the installation-base is on any of these three (and then
some Debian installs).

For your use-case, it doesn’t really matter what OS you run, as long as
it’s one of the above (or you know it really well).

I think FreeBSD9+10 have the lowest hardware requirements, even without
special tuning.

I can second the fact FreeBSD + nginx is a rocking combo. We’ve been
running that for years under ever increasing traffic and it only
requires a
few basic adjustments to the OS, even fewer in 10 since a lot of system
defaults were cranked up for modern times. Our current hardware handling
nginx related duties are sporting Intel L5520 procs and have been in
service since 2009, only now in the process of being replaced due to
aging.
If systems had a guaranteed infinite life these boxes would still be
good
for quite some time. If you go the Linux path it’s probably a similar
situation, nginx is likely not going to be the part of your stack which
cracks first.

__________________Scott LarsonSystems AdministratorWiredrive/LA310 823
8238 ext. 1106310 943 2078 faxwww.wiredrive.com
http://www.wiredrive.com/www.twitter.com/wiredrive
http://www.twitter.com/wiredriveWiredrive
http://www.wiredrive.com/facebook

On Wed, Feb 18, 2015 at 11:01 AM, Rainer D.
[email protected]