Aufspüren eines schwer auffindbaren und langsamen anon_inode von lsof und Apache strace

Aufspüren eines schwer auffindbaren und langsamen anon_inode von lsof und Apache strace

Es tritt ein zeitweiliges Problem mit einer LAMP-Anwendung auf, bei dem Apache sein Serverlimit erreicht und (fast) zum Stillstand kommt. straceBei jedem httpdProzess werden zahlreiche langsame epoll_waitAufrufe angezeigt.

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

Ein Benutzer lsofdesselben Verfahrens behauptet, dies sei ein anon_inode:

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

Irgendeine Idee, was das sein könnte, oder ein Rat, wie man diese Informationen aufspüren kann?

Antwort1

Dies wird grundsätzlich lsofnicht so gut gemeldet, wie es sollte. Ich kann dies unter Ubuntu 14.04 reproduzieren, aber in einem neueren Ubuntu sehe ich:

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

Das ist ziemlich klar. Im Grunde wird dieser Epoll-Dateideskriptor immer langsam aussehen, weil er buchstäblich vom Kernel blockiert wird, entweder aufgrund eines Timeouts oder aufgrund von Ereignissen bei einer Reihe anderer Dateideskriptoren. epoll(7)Weitere Einzelheiten finden Sie unter.

verwandte Informationen