|Subject:||Re: response times and network io|
|From:||Joe Williams (joe-...@public.gmane.org)|
|Date:||Feb 29, 2008 1:53:46 pm|
Understood, thanks for the insight. The Nginx was consistently 10 to 15% lower than Apache, such as 98MB/s versus 110MB/s.
If you would like to see my results for httperf you can download the spreadsheet here: http://www.joeandmotorboat.com/wp-content/files/bench_results-comb-static.ods
I also posted about it here: http://www.joeandmotorboat.com/2008/02/28/apache-vs-nginx-web-server-performance-deathmatch/
Let me know what you think.
Igor Sysoev wrote:
On Fri, Feb 29, 2008 at 11:05:37AM -0600, Joe Williams wrote:
I used httperf to give me the network I/O (KB/s) and response times. I could probably produce the sar data from each if you would like it. I assume the response times are due to Nginx not needing to take time to start up another process/thread?
So nginx's network I/O is for example, 20M/s, while Apache's - 100M/s ?
In this case network I/O and response times are the same things. The lesser response times, the more you can get for the same time.
Apache usually does not start new processes, it has some number of already preforked processes ready to handle requests.
Igor Sysoev wrote:
On Thu, Feb 28, 2008 at 08:24:24PM -0600, Joe Williams wrote:
please excuse my typo. regarding network I/O nginx uses consistently lower I/O than apache.
regardless i am curious about how it processes requests differently to obtain lower response times and network I/O.
How do you measure network I/O ?
In short, Apache and nginx use different model for processing requests. Apache processes connection in one process or thread while nginx processes thousand connections in one process/thread using scaleable methods such as kqueue/epoll/etc.
thanks for any help you can provide.
Joe Williams wrote:
i am performing some httperf tests against apache and nginx. something i noticed that piqued my interest were the consistency of response times (0.4 ms each run regardless of number of request, much lower than apache in all cases) and network I/O (consistently higher than apache regardless of number of request). it also uses less cpu than apache and doesn't nearly drive up the load.
are these normal results? is there a mechanism in nginx that keeps the response times low and consistent? also, is it normal that it uses more network I/O? if so, what is the cause? to me it would seem like that it uses more bandwidth to respond to the same number of requests which seems inefficient.
please correct me if i am wrong. i am just trying to understand the core differences in how nginx works in comparison to apache and why i would see these performance differences.
thanks for the help.