Weird 0.8.11.1 connections spike
Jim Ohlstein
jim at ohlste.in
Sun Aug 30 19:52:51 MSD 2009
Igor Sysoev wrote:
> On Sun, Aug 30, 2009 at 11:00:10AM -0400, Jim Ohlstein wrote:
>
>
>> Igor Sysoev wrote:
>>
>>> On Sun, Aug 30, 2009 at 01:45:30AM +1000, Jeff Waugh wrote:
>>>
>>>
>>>
>>>> <quote who="Igor Sysoev">
>>>>
>>>>
>>>>
>>>>>> 2009/08/29 23:15:52 [alert] 8716#0: open socket #152 left in connection
>>>>>> 105
>>>>>>
>>>>>>
>>>>> This is probably after reconfiguraiton.
>>>>>
>>>>>
>>>> Sorry, yes, I should've checked the time -> that was from when I reverted
>>>> to
>>>> 0.8.10... there no alerts prior to that.
>>>>
>>>>
>>>>
>>>>> There are signinficant changes in 0.8.11, but you case is strange: I'am
>>>>> testing 0.8.11 on a host with 400r/s with a lot of proxied SSIed
>>>>> subrequests and static files, and there is no connection leak.
>>>>>
>>>>> Have you built any third party modules ?
>>>>>
>>>>>
>>>> None.
>>>>
>>>> btw, the majority of my non-static traffic is fastcgi over unix socket.
>>>> I'm
>>>> going to do the upgrade again and watch the activity.
>>>>
>>>>
>>> Could you do the following:
>>>
>>> 1) enable coredumps
>>> 2) set in nginx.conf:
>>> debug_points abort;
>>> 3) reconfigure nginx, if there are open connections, then nginx creates
>>> coredump on exit
>>> 4) look in log for alerts: open socket #... left in connection NN
>>> 5) run "gdb /path/to/nginx /path/to/core", then
>>>
>>> p ((ngx_connection_t *) ngx_cycle->connections[NN]->data)->uri
>>> p ((ngx_connection_t *) ngx_cycle->connections[NN]->data)->main->count
>>>
>>> do not forget to set NN from log message.
>>>
>>>
>>>
>>>
>> Igor,
>>
>> On one server I seem to be seeing the same issue. Twice since upgrading
>> to 0.8.11 I have found the site unresponsive. It's a relatively slow
>> vBulletin site on a very small VPS. We serve a fair bit of static
>> content (photos mostly) and PHP via fastcgi.
>>
>> OS is CentOS 5.3 Linux - 2.6.18-028stab062.3
>>
>> sample of error log (it grew to 36 GB in a few hours):
>>
>> 2009/08/30 07:50:20 [alert] 2043#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 07:50:20 [alert] 2043#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 07:50:20 [alert] 2043#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 07:50:20 [alert] 2043#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 07:50:20 [alert] 2043#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 07:50:20 [alert] 2043#0: accept() failed (24: Too many open
>> files)
>>
>> ...
>>
>> 2009/08/30 10:29:00 [alert] 2042#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 10:29:00 [alert] 2042#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 10:29:00 [alert] 2042#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 10:29:00 [alert] 2042#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 10:29:00 [alert] 2042#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 10:29:00 [alert] 2042#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 10:29:00 [alert] 2042#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 10:29:00 [alert] 2042#0: accept() failed (24: Too many open
>> files)
>> 2009/08/30 10:29:00 [alert] 2042#0: accept() failed (24: Too many open
>> files)
>>
>> When I did shut it down I saw hundreds of lines like:
>>
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #1010 left in connection
>> 1002
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #981 left in connection 1003
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #994 left in connection 1004
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #1017 left in connection
>> 1005
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #1012 left in connection
>> 1006
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #1011 left in connection
>> 1007
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #1016 left in connection
>> 1008
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #1014 left in connection
>> 1009
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #1019 left in connection
>> 1010
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #1020 left in connection
>> 1011
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #1013 left in connection
>> 1012
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #995 left in connection 1013
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #988 left in connection 1014
>> 2009/08/30 10:29:00 [alert] 2042#0: open socket #1023 left in connection
>> 1015
>> 2009/08/30 10:29:00 [alert] 2042#0: aborting
>>
>> Other servers seem to be running fine including ones with busy sites.
>> For the moment I have reverted that VPS to 0.8.10.
>>
>
> Could you do the following:
>
> 1) enable coredumps
> 2) set in nginx.conf:
> debug_points abort;
> 3) reconfigure nginx, if there are open connections, then nginx creates
> coredump on exit
>
Do you want nginx reconfigured "--with-debug" or is there another option
you need?
> 4) look in log for alerts: open socket #... left in connection NN
> 5) run "gdb /path/to/nginx /path/to/core", then
>
> p ((ngx_connection_t *) ngx_cycle->connections[NN]->data)->uri
> p ((ngx_connection_t *) ngx_cycle->connections[NN]->data)->main->count
>
> where NN is NN from log message.
>
>
>
Jim
More information about the nginx
mailing list