CPU 100% 상황에서 체계적인 명령어 순서로 원인을 좁혀가는 방법 서술
CPU 사용률이 100%로 치솟으면 먼저 top 명령어로 어떤 프로세스가 CPU를 잡아먹고 있는지 확인합니다. PID와 함께 CPU 점유율이 높은 프로세스를 식별하는 것이 출발점입니다.
특정 프로세스가 원인이라면 ps aux | grep [PID]로 해당 프로세스의 상세 정보를 보고, strace -p [PID]로 어떤 시스템 콜을 반복하는지 추적합니다. 여러 프로세스가 동시에 높은 경우에는 커널 영역에 문제가 있는 경우도 있어서 vmstat으로 컨텍스트 스위치나 인터럽트 수치도 확인합니다.
실습 환경에서 의도적으로 무한 루프를 돌리는 스크립트로 실험해본 경험이 있습니다. top으로 프로세스를 잡고 kill -9로 종료하는 과정을 직접 해보았습니다. 이론으로만 알던 것과 실제로 명령어를 입력해보는 것은 체감이 다르다는 것을 느꼈습니다. 실제 운영 환경에서는 종료 전에 스냅샷을 남기는 것이 중요하다는 것도 그때 배웠습니다.