Возникает периодическая проблема с приложением LAMP, в котором Apache разветвляется на свой ServerLimit и тормозит (почти) до остановки. An strace
на любом httpd
процесс показывает многочисленные, медленные epoll_wait
звонки.
1.254721 epoll_wait(14, {{EPOLLIN, ...
3.296430 epoll_wait(14, {{EPOLLIN, ...
1.018047 epoll_wait(14, {{EPOLLIN, ...
1.279721 epoll_wait(14, {{EPOLLIN, ...
1.145649 epoll_wait(14, {{EPOLLIN, ...
1.269836 epoll_wait(14, {{EPOLLIN, ...
1.094779 epoll_wait(14, {{EPOLLIN, ...
1.205911 epoll_wait(14, {{EPOLLIN, ...
9.052785 epoll_wait(14, {{EPOLLIN, ...
1.116279 epoll_wait(14, {{EPOLLIN, ...
1.027709 epoll_wait(14, {{EPOLLIN, ...
1.178679 epoll_wait(14, {{EPOLLIN, ...
1.336032 epoll_wait(14, {{EPOLLIN, ...
2.541861 epoll_wait(14, {{EPOLLIN, ...
1.113012 epoll_wait(14, {{EPOLLIN, ...
An lsof
по тому же процессу утверждает, что это anon_inode
:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
httpd 9709 apache 14u 0000 0,7 0 373 anon_inode
Есть ли какие-нибудь сведения о том, что это могло быть, или совет, чтобы отследить эту информацию?
Это принципиально lsof
не сообщает так хорошо, как следует. Я могу воспроизвести это на Ubuntu 14.04, но в более новой версии Ubuntu я вижу:
perl 511299 frew 3u a_inode 0,11 0 9666 [eventpoll]
Что довольно ясно. По сути, этот файловый дескриптор epoll всегда будет выглядеть медленным, потому что он буквально блокирует ядро либо по таймауту, либо по событиям в ряде других файловых дескрипторов. Видеть epoll(7)
Больше подробностей.