ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: утечка коннектов?



Alex Vorona пишет:
Привет

Сегодня первый раз пронаблюдал в error.log следующее

2008/07/10 00:00:48 [alert] 81002#0: send() failed (64: Host is down)
2008/07/10 00:00:49 [alert] 81002#0: send() failed (64: Host is down)
2008/07/10 00:00:49 [alert] 81002#0: send() failed (64: Host is down)
2008/07/10 00:00:58 [alert] 81003#0: send() failed (64: Host is down)
2008/07/10 00:00:58 [alert] 81003#0: send() failed (64: Host is down)
2008/07/10 00:01:06 [alert] 81002#0: send() failed (64: Host is down)
2008/07/10 00:01:08 [alert] 81002#0: send() failed (64: Host is down)
2008/07/10 00:01:12 [alert] 81002#0: send() failed (64: Host is down)
2008/07/10 00:01:14 [alert] 81002#0: send() failed (64: Host is down)
2008/07/10 00:01:23 [alert] 81002#0: send() failed (64: Host is down)
2008/07/10 00:01:40 [alert] 81002#0: unexpected response for domain.com

После этих ошибок у nginx начался рост writting connections, дошёл минут за 45 до ~3100(обычно около 100 запросов/сек), после чего, похоже, воркер 81002 перестал отрабатывать коннекты.

небольшой тесткейс показал, что, по-видимому, с резолвингом проблемы всё-таки 
есть.
  resolver   127.0.0.1;
  resolver_timeout   1s;
        location ^~ /pp {
            set $pp "google.com";
            proxy_pass http://$pp;
        }

останавливаем резолвер на 127.0.0.1 :)
в статусе
Active connections: 1
server accepts handled requests
 1 1 1
Reading: 0 Writing: 1 Waiting: 0

пускаем ab
ab -n 100  -c 100 http://127.0.0.1/pp/123
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)...apr_poll: The timeout specified has expired (70007)
Total of 1 requests completed

в статусе
Active connections: 100
server accepts handled requests
 102 102 102
Reading: 0 Writing: 100 Waiting: 0

судя по дебаг-логу, nginx стучится к резолверу по-прежнему, коннекты от ab не закрыты, и так, похоже, будет бесконечно долго. По HUP этот воркер не выходит. Если запустить резолвер, то только тогда всё нормализуется - 100 запросов на гугль и закрытие коннектов.

Возможно, что-то схожее происходит в случае unexpected response for domain.com ?



 




Copyright © Lexa Software, 1996-2009.