ПРОЕКТЫ 


  АРХИВ 


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: Master процесс nginx 0.6.38 съедае т всю доступную память


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Master процесс nginx 0.6.38 съедае т всю доступную память
  • From: Одинцов Павел <pavel.odintsov@xxxxxxxxxxxxxx>
  • Date: Sun, 13 Sep 2009 00:31:52 +0500
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=HWfXPbnetml8Gu0sI/LWbJ7/I/xzPL3a0bMJgdrtz5Y=; b=KkxqKr3HImzOHJPh+nLCbLmn2TfS4xfBkqw1YgeXdW7bjJdNOQWcbdMZW5kuX4qw9d 1UijcEe29F0X/ONW8aptMcVJRQQYLKvP/wRxUhMNu0Onbx1/4WbDKvFNKHT79QUeNwyJ Fft7Gx2s7+wQietyqeNdGfiFTlSwXici14JxI=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=faioUHl6v2sg1x+rMMtpNojpPZLI0Y9pWKkzDjqLi0tZOu/sDPVZrll/AaI9ayJuiU /TrcBk11kpvI03EK7jwCgNz1W5j2/dSpUgG8npp4nyh/8Hp4XTTo4Om7nk+cgI6F44bg CKnRhUip8UliwAZHdCJtwi4Sq+0eBZrbqRDrQ=
  • In-reply-to: <6910208933.20090912215938@xxxxxxxxx>
  • References: <edcf61010909071318h62a18cabx9714f782d46c2956@xxxxxxxxxxxxxx> <6910208933.20090912215938@xxxxxxxxx>

Добрый день!

Большое спасибо за развернутый ответ, отвечаю ниже.

2009/9/12 Gena Makhomed <gmm@xxxxxxxxx>:
> On Monday, September 7, 2009 at 23:18:21, Одинцов Павел wrote:
>
> ОП> Имеется очень противная проблема, nginx 0.6.38 (epel репозиторий)
> ОП> стоит проксей перед хостинговой Апачей и попутно раздает статику;
> ОП> изредка на паре машин из полутора десятков nginx (master процесс)
> ОП> начинает жутко поедать память и в итоге через пару минут сваливает
> ОП> машину. Подозрения о причинах такого поведения есть в сторону буферов
> ОП> и проксирования больших файлов от Апача, но тут ничего толком не
> ОП> получилось понять.  Помогайте :(
>
> насколько часто ему посылается SIGHUP, SIGUSR1 и другие сигналы?

SIGHUP посылается весьма часто (до десятков раз в час и больше), т.к.
клиенты реконфигурируют сайты и для этого необходим мягкий релоад
nginx; другие сигналы не используются.

>
> ОП> Конфиг:
>
> ОП> worker_processes  1;
>
> на 4-ядерном Xeon`е наверное более эффективно
> было бы использовать как минимум 4 worker`а:
>
> worker_processes  4;

Ядер машине отдано сейчас три и настройка до worker_process 3; уже
применена, просто старый конфиг привел.

> worker_priority -10;

Да, согласен, спасибо, а-то временами nginx подлагивает, т.к. другие
процессы забивают проц.

> worker_cpu_affinity 0001 0010 0100 1000;

Вот за это спасибо, не знал, что воркеры можно явно повесить на отдельные ядра.

>
> ОП> events {
> ОП>     worker_connections  10024;
>
> ОП> http {
> ОП>     keepalive_timeout  65;
>
> это разве не мало для 4-ядерного сервера с 10 GB памяти,
> который находится при этом "под очень большой нагрузкой" ?
>
> ===============================================================
>
> http://wiki.nginx.org/NginxHttpEventsModule#worker_connections
>
> The worker_connections and worker_proceses from the main section allows you 
> to calculate maxclients value:
>
> max_clients = worker_processes * worker_connections
>
> In a reverse proxy situation, max_clients becomes
>
> max_clients = worker_processes * worker_connections/4
>
> Since a browser opens 2 connections by default to a server and nginx uses the 
> fds (file descriptors) from the same pool to connect to the upstream backend
>
> ===============================================================
>
> в современных браузерах не 2 connections by default,
> вот например, как это выглядит для нового Firefox`а:
>
> network.http.max-connections-per-server
> (Minimo default: 2. All others default: 8. Firefox 3: 15)
>
> network.http.max-persistent-connections-per-server
> (Default: 2. Firefox 3: 6)
>
> PS возможно лучше было бы оценивать не число max_clients,
> а более точное число max_client_connections (keepalive+active):
>
> max_client_connections = worker_processes * worker_connections / 2
> для запросов требующих обращения к {proxy,fastcgi,memcached}_pass
>
> max_client_connections = worker_processes * worker_connections
> для запросов, которые nginx обслуживает без обращения к backend`ам.
>
> --
> Best regards,
>  Gena
>
>
>

А вот последнее требует обстоятельного обдумывания, сейчас постараюсь
снять статистику по нагрузке, чтобы посчитать.

-- 
С уважением, Одинцов Павел


 




Copyright © Lexa Software, 1996-2009.