bad performance with nginx cache

Igor Sysoev igor at sysoev.ru
Tue Aug 31 16:43:39 MSD 2010


On Mon, Aug 30, 2010 at 10:56:45PM +0400, Franchoze Eric wrote:

> 
> 
> 30.08.10, 19:40, "Igor Sysoev" <igor at sysoev.ru>:
> 
> > On Mon, Aug 30, 2010 at 02:15:29PM +0400, Franchoze Eric wrote:
> >  
> >  > Interesing may email got to the list, but I did not get your answer.
> >  
> >  Because you has not subscribed to the list. The email has been
> >  bounced to me and I have added your address to the write only list.
> >  
> >  > > What OS do you use and how much memory do you have on the host?
> >  > 
> >  > Linux 2.6.32+, CentOS 5.2, 15GB of RAM. - so 3 GB of ram should be enought.
> >  
> >  What do
> >  cat /proc/sys/fs/inode-max
> >  cat /proc/sys/fs/inode-nr
> >  find /var/www/cache2 | wc -l
> >  show ?
> >  
> >  
> >  
> 
> #cat /proc/sys/fs/file-max 
> 1646126
> #cat /proc/sys/fs/inode-nr 
> 230866	0
> #mount |grep cache2
> tmpfs on /var/www/cache2 type tmpfs (rw)
> #find /var/www/cache2 | wc -l
> 164865
> 
> Igor, I found that with my first settings (cache settings from first email) nginx god segfaults each 15 minutes at different random places. I changed invalidate period to 15 minutes,
> cache time to 10 minutes, removed my ugly proxy_cache_key and limited to cache only one destination. Load avarage is rapidly decreased. No segfaults. I will do some tests to verify impact on turning on cache with high load and email results.
> 
> Got segfault in that places:
> Core1:
> [New process 24925]
> #0  0x0000000000427c49 in ngx_http_request_handler ()
> (gdb) bt
> #0  0x0000000000427c49 in ngx_http_request_handler ()
> #1  0x000000000041e777 in ngx_epoll_process_events ()
> #2  0x0000000000417978 in ngx_process_events_and_timers ()
> #3  0x000000000041d3b0 in ngx_worker_process_cycle ()
> #4  0x000000000041bcf7 in ngx_spawn_process ()
> #5  0x000000000041db99 in ngx_master_process_cycle ()
> #6  0x00000000004044da in main ()
> (gdb)
> 
> 
> Core2:
> (gdb) bt
> #0  0x000000348d47bf0b in memcpy () from /lib64/libc.so.6
> #1  0x0000000000408851 in ngx_vslprintf ()
> #2  0x0000000000409445 in ngx_snprintf ()
> #3  0x00000000004285e8 in ngx_http_log_error_handler ()
> #4  0x00000000004286fc in ngx_http_log_error ()
> #5  0x0000000000404a3d in ngx_log_error_core ()
> #6  0x000000000040dd6a in ngx_connection_error ()
> #7  0x000000000041a681 in ngx_unix_recv ()
> #8  0x000000000043840d in ngx_http_upstream_process_header ()
> #9  0x00000000004368e2 in ngx_http_upstream_handler ()
> #10 0x000000000041e716 in ngx_epoll_process_events ()
> #11 0x0000000000417978 in ngx_process_events_and_timers ()
> #12 0x000000000041d3b0 in ngx_worker_process_cycle ()
> #13 0x000000000041bcf7 in ngx_spawn_process ()
> #14 0x000000000041db99 in ngx_master_process_cycle ()
> #15 0x00000000004044da in main ()
> (gdb)
> 
> Core3:
> (gdb) bt
> #0  0x000000348d430265 in raise () from /lib64/libc.so.6
> #1  0x000000348d431d10 in abort () from /lib64/libc.so.6
> #2  0x000000348d46a84b in __libc_message () from /lib64/libc.so.6
> #3  0x000000348d4722ef in _int_free () from /lib64/libc.so.6
> #4  0x000000348d47273b in free () from /lib64/libc.so.6
> #5  0x0000000000405038 in ngx_destroy_pool ()
> #6  0x0000000000427e8a in ngx_http_close_connection ()
> #7  0x0000000000428bf7 in ngx_http_keepalive_handler ()
> #8  0x0000000000417a99 in ngx_event_expire_timers ()
> #9  0x00000000004179c5 in ngx_process_events_and_timers ()
> #10 0x000000000041d3b0 in ngx_worker_process_cycle ()
> #11 0x000000000041bcf7 in ngx_spawn_process ()
> #12 0x000000000041ca49 in ngx_start_worker_processes ()
> #13 0x000000000041d914 in ngx_master_process_cycle ()
> #14 0x00000000004044da in main ()
> (gdb)
> 
> Core4:
> (gdb) bt
> #0  0x000000000043bf23 in ngx_http_range_body_filter ()
> #1  0x0000000000421e89 in ngx_http_output_filter ()
> #2  0x0000000000437270 in ngx_http_upstream_process_non_buffered_request ()
> #3  0x000000000043754a in ngx_http_upstream_process_non_buffered_upstream ()
> #4  0x00000000004368e2 in ngx_http_upstream_handler ()
> #5  0x000000000041e716 in ngx_epoll_process_events ()
> #6  0x0000000000417978 in ngx_process_events_and_timers ()
> #7  0x000000000041d3b0 in ngx_worker_process_cycle ()
> #8  0x000000000041bcf7 in ngx_spawn_process ()
> #9  0x000000000041ca49 in ngx_start_worker_processes ()
> #10 0x000000000041d914 in ngx_master_process_cycle ()
> #11 0x00000000004044da in main ()
> (gdb) 

Unfortunatly, these backtraces have not debug information.
What does "nginx -V" show ?


-- 
Igor Sysoev
http://sysoev.ru/en/



More information about the nginx-devel mailing list