Es tritt ein zeitweiliges Problem mit einer LAMP-Anwendung auf, bei dem Apache sein Serverlimit erreicht und (fast) zum Stillstand kommt. strace
Bei jedem httpd
Prozess werden zahlreiche langsame epoll_wait
Aufrufe 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 lsof
desselben 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 lsof
nicht 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.