nginx зависает при записи логов?

dim1 nginx-forum на forum.nginx.org
Вс Мар 13 12:58:37 UTC 2016


nginx 1.8.0
Debian GNU/Linux 7 
Linux version 2.6.32-5-amd64 (Debian 2.6.32-48squeeze6) 

При нагрузке подвисает nginx.
Протестировал: при более менее активных дисковых операциях, начинает
подвисать nginx. Мне кажется, что ворекр (процесс nginx) блокируется при
записи лога. Верно? 

Операций ЧТЕНИЯ - практически НЕТ, контент закешировала ОС в памяти.

Логи достигают до 10-15 Гбайт в сутки (отключить не могу, но могу уменьшить
на 30%). 

Вот так выглядит лог проверки доступности сайта (числа - миллисекунды), если
запустить на сервере копирование 10ГБ файла:

[time] All time: Dns Connect Send Wait Receive
[2016-03-13 03:09:18] 179: 0 0 44 45 89 
[2016-03-13 03:09:20] 189: 0 0 47 44 96 
[2016-03-13 03:09:34] 7252: 0 0 43 7007 200 <---
[2016-03-13 03:09:37] 1970: 0 0 46 1831 91 0 <---
[2016-03-13 03:09:41] 179: 0 0 44 44 89 
[2016-03-13 03:09:51] 7770: 0 0 44 7007 718 0 <---
[2016-03-13 03:09:54] 180: 0 0 45 44 89 
[2016-03-13 03:09:56] 165: 0 0 41 41 81 
(таймаут ожидания 7 сек)

Тоже копирование, но с ionice -c3
[2016-03-13 03:38:03] 178: 0 0 44 44 88 
[2016-03-13 03:38:05] 178: 0 0 44 44 89 
[2016-03-13 03:38:15] 4199: 0 0 44 4065 89 0 <---
[2016-03-13 03:38:17] 178: 0 0 44 44 88 
[2016-03-13 03:38:20] 177: 0 0 44 44 88 
[2016-03-13 03:38:25] 1437: 0 0 40 1315 81 
[2016-03-13 03:38:28] 162: 0 0 40 40 81 

Я так понимаю, задержки когда каждый процесс nginx пытается записать лог.
Реально так? 
Могут ли быть зависания, из-за того все воркеры пытаются писать лог на
диск?
Как побороть (не меняя железо)?

Логи пишутся по 64Кб: access_log ... buffer=64k;
error_log без указания buffer

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,265286,265286#msg-265286



Подробная информация о списке рассылки nginx-ru