현재 서버에서 몇 가지 문제가 발생하여 간헐적으로 CPU가 100 % 차지하는 아파치 프로세스가 실행 및 실행되는 것처럼 보입니다.
맨 위를 실행하면 다음이 표시됩니다.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20788 www-data 20 0 318m 18m 3984 R 100 0.0 40:29.21 /usr/sbin/apache2 -k start
23523 www-data 20 0 319m 20m 4684 R 100 0.0 4:12.36 /usr/sbin/apache2 -k start
나는 어떤 스크립트 (또는 스크립트)가 이것을 일으키는 지 알고 싶어서 시도했다.
strace -p 20788
그러나 그것은 전혀 출력을 보여주지 않습니다 (약 10 분 동안 그대로 두었고 아무것도 표시하지 않았습니다). 내 이해에서 이것은 무한 루프에 빠졌으며 표시 할 "시스템 호출"이 없음을 의미 할 수 있습니다.
무슨 일이 일어나고 있는지 보여주기 위해 할 수있는 일이 있습니까?
감사
편집- 언급하는 것을 잊었습니다. 이것은 한 번에 수백 명의 사용자가있는 라이브 서버입니다! 그래서 실제로 자유롭게 설정 옵션을 변경하고 아파치를 다시 시작할 수는 없습니다.
편집 2- gdb의 역 추적 (bt)은 PHP가 --enable-debug로 구성되지 않은 경우 유용하지 않은 것 같습니다. "execute ()"만 표시되지만 PHP 스크립트가 무엇인지 알아야합니다. 실제로 달리고 있습니다. 다른 방법이 있습니까?
#0 0x00007f6c143fb0c5 in ?? () from /usr/lib/apache2/modules/libphp5.so
#1 0x00007f6c143b040b in execute () from /usr/lib/apache2/modules/libphp5.so
#2 0x00007f6c1438b970 in zend_execute_scripts () from /usr/lib/apache2/modules/libphp5.so
#3 0x00007f6c14337fe3 in php_execute_script () from /usr/lib/apache2/modules/libphp5.so
#4 0x00007f6c1441ae7d in ?? () from /usr/lib/apache2/modules/libphp5.so
#5 0x00007f6c18912508 in ap_run_handler ()
#6 0x00007f6c1891297e in ap_invoke_handler ()
#7 0x00007f6c18922570 in ap_process_request ()
#8 0x00007f6c1891f398 in ?? ()
#9 0x00007f6c18918fa8 in ap_run_process_connection ()
#10 0x00007f6c189271d0 in ?? ()
#11 0x00007f6c1892793a in ?? ()
#12 0x00007f6c189284e7 in ap_mpm_run ()
#13 0x00007f6c188fd4a4 in main ()