top 명령을 통해서 cpu 사용량을 체크하다보면
갑자기 프로세서가 증가하거나 cpu 사용량이 증가하는 일이 종종 발생합니다.
제가 원인을 살펴본바....
웹브라우저에서 mysql에 과중한 작업을 요청한 후 결과값이 나오기이전에
브라우저를 닫아버리면 그런 현상이 발생하는것을 알게 되었습니다.
이를테면 내부루프가 돈다고나 할까? 뭐 그렇게 되면 모든작업은 거의 마비상태에 빠지게
되고 ... 어쩔수없이 killall -9 mysqld 명령을 통해서 mysql 관련프로세서를 모두죽이는걸로 해
결을 보고있습니다. 이런 단순무식한 해결방법말고 .....근본대책은 없을까요??
브라우저를 닫아도 DB 의 긴 쿼리가 계속 돌면 CPU 를 계속 쓰게 됩니다. MySQL 의 쿼리 시간 제한이나 웹 쪽에서 연결을 끊을 때 쿼리를 취소하는 로직을 넣는 것이 근본 대책입니다. SHOW PROCESSLIST 로 오래 걸리는 쿼리를 찾고, 인덱스도 함께 보세요.