response times and network io

Joe Williams joe at joetify.com
Sat Mar 1 00:54:09 MSK 2008


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.

Thanks.
-Joe


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
>>>>
>>>>
>>>> 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.
>>>>>
>>>>> -joe
>>>>>
>>>>>      
>>>>>           
>>>> -- 
>>>> Name: Joseph A. Williams
>>>> Email: joe at joetify.com
>>>>
>>>>
>>>>    
>>>>         
>>>  
>>>       
>> -- 
>> Name: Joseph A. Williams
>> Email: joe at joetify.com
>>
>>
>>     
>
>   

-- 
Name: Joseph A. Williams
Email: joe at joetify.com






More information about the nginx mailing list