Rastreando un anon_inode lento y esquivo de lsof y Apache strace

Rastreando un anon_inode lento y esquivo de lsof y Apache strace

Experimentar un problema intermitente con una aplicación LAMP en la que Apache se bifurca hasta su ServerLimit y se detiene (casi). Un proceso straceen cualquier httpdproceso muestra numerosas y lentas epoll_waitllamadas.

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, ...

Un lsofen el mismo proceso afirma que esto es anon_inode:

COMMAND  PID   USER   FD   TYPE   DEVICE      SIZE     NODE NAME
httpd   9709 apache   14u  0000      0,7         0      373 anon_inode

¿Alguna idea de lo que podría ser o algún consejo para rastrear esa información?

Respuesta1

Esto es fundamentalmente lsofno informar tan bien como debería. Puedo reproducir esto en Ubuntu 14.04, pero en un Ubuntu más nuevo veo:

perl 511299 frew 3u a_inode 0,11 0 9666 [eventpoll]

Lo cual está bastante claro. Básicamente, ese descriptor de archivo epoll siempre parecerá lento porque es literalmente el kernel que bloquea el tiempo de espera o eventos en otros descriptores de archivos. Ver epoll(7)para más detalles.

información relacionada