최근, 아파치는 CPU의 100 %를 사용하기 시작 :
top
나를 준다
다른 유사한 스레드에서 mod_status를 사용하는 팁을 얻었습니다. 많은 양의 NULL 요청 외에도 다음을 제공합니다.
CPU Usage: u2.16 s1.32 cu0 cs0 - .0835% CPU load
1.2 requests/sec - 17.6 kB/second - 14.6 kB/request
8 requests currently being processed, 42 idle workers
액세스 및 오류 로그에는 전혀 놀라운 내용이 없습니다.
CPU 사용률은 .8 %입니다. 또 다른 팁은 다음을 사용하는 것입니다 strace
.
root@server:~# strace -p 1956
Process 1956 attached - interrupt to quit
restart_syscall(<... resuming interrupted call ...>
그리고 추가 출력을 생성하지 않고 30 분 이상 동안 이와 같이 유지됩니다. 아파치를 다시 시작하면 1 초 미만의 문제가 해결되었습니다. 서버는 apache2에서 최신 웹 사이트뿐만 아니라 몇 가지 사용자 정의 파이썬 스크립트를 실행하지만 스크립트를 끄거나 (첫 번째 스크립트에서는 활성화하지 않음) 장소) 아무것도 변경하지 않았습니다. 아파치를 중지하고 서버의 전원을 끈 후 몇 분 후에 서버의 전원을 켜고 모든 서비스를 다시 시작한 후 무작위로 다시 팝업하기 위해 몇 시간 동안 CPU 사용량이 낮게 유지되었습니다 (?).
내 서버의 DigitalOcean CPU 통계는 다음과 같습니다. 봇을 다시 시작할 때까지 거의 반나절 동안 CPU 사용량이 얼마나 높았는지 확인할 수 있습니다. 몇 시간 동안 안정을 유지 한 다음 다시 팝업하기 만하면됩니다.
나는 완전히 단어를 잃어 버렸고 코드에서 어떤 문제가 나에게 이런 문제를 주며 아파치 자체가 원인인지 알아 내기 위해 무엇을 할 수 있는지 모르겠습니다 ...
따라서 질문에 대한 힌트를 주시면 감사하겠습니다. 다른 작업을 수행 할 수 있습니까? 어떤 것을 확인하지 않았을 수 있습니까? 이것은 내 자신의 코드에 확실합니까? 파이썬 코드의 어떤 부분이 무한 루프 또는 유사한 것을 통해 앱과 충돌하는지 어떻게 알 수 있습니까?