полный вывод strace в течении минуты -
http://maloletka.ru/dead_nginx.strace.bz2 (630 Кб)
со временем они конечно умирают, не не сразу и сервер грузят весьма
заметно.
nginx 0.1.12+, linux 2.6.3+ SMP
в конфиге nginx прописано: debug_points abort;
Правильно ли я понимаю, что
1) используется много логов, около сотни ?
2) используется limit_rate ?
Проблема не в них, просто я хочу убедиться что правильно понял strace.
В логе есть два момента, которые мне не нравятся:
1) сообщения
{EPOLLERR|0x807a020, {u32=134717480, u64=28969689129000}}
очень похоже, что ядро возврщает мусор.
2) одно сообщения
{EPOLLET|0x3fffd820, {u32=3086058770, u64=578613461717714194}},
{EPOLLET|0x37e8b000, {u32=134717480, u64=578607170934251560}}
тоже очень похоже на ядерный мусор.
У меня есть ощущение, что мусор в виде EPOLLERR|0x807a020 и
EPOLLET|0x3fffd820 - это самодеятельность strace, то есть, он неправильно
интерпретирует параметры epoll_wait() больше одного. Если бы ядро
действительно слало такой мусор, то nginx бы часто падал в таких местах.
Игорь Сысоев
http://sysoev.ru