hello,
i’ve been running some benchmarks for static content with httperf and
autobench to compare nginx to apache’s worker mpm. i used the default
config on apache (2 worker processes, 150 max clients) and set nginx to
use 2 worker processes with epoll and a keepalive_timeout of 15.
during the benchmarks i monitored the systems ressources with sar and
while i expected nginx to outperform apache in every way possible i
noticed that nginx uses way more ram than apache while staying ~1/3rd
behind it in cpu usage.
the benchmarks request a 10k file repeatedly over multiple persistent
connections and while apache used ~5mb throughout the tests nginx took
~70mb. can someone explain to me what the cause of this might be. from
what i read its low memory usage is one of the key features of nginx so
i’m pretty sure somethings wrong on my side.
martin
On Wed, Jun 17, 2009 at 07:16:16PM +0200, Martin R. wrote:
the benchmarks request a 10k file repeatedly over multiple persistent
connections and while apache used ~5mb throughout the tests nginx took
~70mb. can someone explain to me what the cause of this might be. from
what i read its low memory usage is one of the key features of nginx so
i’m pretty sure somethings wrong on my side.
What nginx version have you tested ?
How many worker_connections did you set ?
hello igor, i found the culprit. it was the access log. i’m pretty new
to nginx and i just commented the access_log option not knowing that i
had to set it to off to disable it.
as i was monitoring the whole system’s ram usage i also got the access
log being written to the filesystem cache. turned it off now and results
look more promising. thanks for answering.
martin
Also important to note when doing these benchmarks is whether or not
you ran the benchmark programs on DIFFERENT machines or the same
machine as the webservers. If it’s the latter, you will get noise as
the benchmark programs compete with the webserving programs for
resources.
– Merlin
2009/6/17 Martin R. [email protected]: