0
내에 epoll_wait를 소비, 간단한 strace를가 있음을 보여줍니다)에 epoll_wait()가 너무 많은 CPU를 소모) (너무 많은 CPU를
strace -c -f -p 3655
Process 3655 attached with 5 threads
^CProcess 3655 detached
Process 3656 detached
Process 3657 detached
Process 3658 detached
Process 3659 detached
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
64.43 32.228205 596819 54 epoll_wait
35.31 17.661939 17 1063312 195547 futex
0.26 0.131803 0 448140 gettimeofday
0.00 0.000090 3 27 write
0.00 0.000050 1 54 epoll_ctl
0.00 0.000000 0 54 27 read
0.00 0.000000 0 9 sendmsg
0.00 0.000000 0 90 54 recvmsg
------ ----------- ----------- --------- --------- ----------------
100.00 50.022087 1511740 195628 total
가 (단지 54에 epoll_wait가 호출하지만 usecs /에 epoll_wait의 호출() 왜 596819입니까?
strace가 CPU 시간을 계산하는 방법에 대해서는 잘 모르겠지만 실제로 프로세스는 2 코어 머신에서 CPU의 130 %를 사용했습니다. –
@ Wenlin.Wu 흥미 롭습니다. 최소한의 프로그램을 가지고 있습니까? 'epoll_wait'는 프로세스를 대기 큐에 넣어야합니다. 상당한 CPU 시간을 버는 것은 버그처럼 들립니다. – cnicutar
참으로 내 Bind DNS 서비스이고 Bind의 알려진 버그입니다. https://bugzilla.redhat.com/show_bug.cgi?id=709205를 참조하십시오. 어떻게 이런 일이 발생하는지 모릅니다. –