MySQL의 높은 CPU 사용률
요즘 서버의 CPU가 많이 올라가고 있어요.
CPU 부하 평균은 13.91(1분) 11.72(5분) 8.01(15분)이며, 사이트에서는 트래픽이 약간 증가했을 뿐입니다.
top 명령어를 실행한 후 MySQL이 CPU를 160% 사용하고 있다는 것을 알게 되었습니다!
최근에는 테이블을 최적화하고 영구 연결로 전환했습니다.이로 인해 MySQL이 대량의 CPU를 사용하는 경우가 있습니까?
우선, 지속적인 접속은 거의 항상 득보다 실이 많기 때문에, 아마 끄고 싶을 것입니다.
둘째, 리모트 서버에서 접속할 수 없도록 MySQL 사용자를 재확인해야 합니다.이 또한 확인해야 할 중요한 보안 사항입니다.
세 번째로 MySQL 저속 쿼리 로그를 켜서 시간이 오래 걸리는 쿼리를 감시하고 이를 사용하여 키 테이블을 너무 오래 잠그는 쿼리가 없는지 확인해야 합니다.
CPU 부하가 높을 때 다음 쿼리를 실행하는 것도 확인할 수 있습니다.
SHOW PROCESSLIST;
그러면 현재 실행 중이거나 실행 대기열에 있는 쿼리, 쿼리 내용 및 수행 중인 쿼리가 표시됩니다(이 명령어는 쿼리가 너무 길면 SHOW FULL PROCESSLIST를 사용하여 전체 쿼리 텍스트를 볼 수 있습니다).
또한 버퍼 크기, 테이블 캐시, 쿼리 캐시 및 innodb_buffer_pool_size(innodb 테이블을 사용하는 경우) 등도 주의할 필요가 있습니다.이러한 메모리 할당은 모두 쿼리 성능에 영향을 미쳐 MySQL이 CPU를 소비할 수 있기 때문입니다.
또한 다음과 같은 유용한 정보가 포함되어 있으므로 참고하시기 바랍니다.
프로파일러를 사용하는 것도 좋은 방법입니다.응용 프로그램이 실행 중인 쿼리, 중복된 쿼리가 있는지, 쿼리가 얼마나 걸리는지 등을 원할 때 켤 수 있습니다.예를 들어 PHP Profiler라고 하는 작업을 하고 있습니다만, 많은 것이 있습니다.Drupal, Joomla, Wordpress 등의 소프트웨어를 사용하는 경우 커뮤니티 내에서 이 정보를 수동으로 통합할 필요 없이 얻을 수 있는 모듈이 있을 수 있습니다.
MySQL의 CPU 사용률이 높거나 부하가 높은 경우는, 톱 투고이므로, 추가 회답을 첨부합니다.
2012년 7월 1일, 조수로 인한 지구의 자전 속도를 보상하기 위해 현재의 UTC 시간에 윤초가 추가되었다.ntp(또는 ntpd)를 실행할 때 이 초가 컴퓨터/서버의 클럭에 추가되었습니다.MySQLd는 일부 OS에서 이 추가 시간을 좋아하지 않아 CPU 부하가 높습니다.퀵픽스는 (루트로) 다음과 같습니다.
$ /etc/init.d/ntpd stop
$ date -s "`date`"
$ /etc/init.d/ntpd start
이 서버가 외부에 표시되는 경우는, 외부로부터의 접속 요구가 많은지 확인해 주세요(즉, 침입을 시도하는 사람).
언급URL : https://stackoverflow.com/questions/1282232/mysql-high-cpu-usage
'itsource' 카테고리의 다른 글
jQuery UI 대화상자 - 닫기 아이콘 누락 (0) | 2022.09.04 |
---|---|
Firebase Error:함수 쿼리여기서()이 유효하지 않은 데이터로 호출되었습니다.지원되지 않는 필드 값: 정의되지 않음 (0) | 2022.09.04 |
치명적인 오류: 유효하지 않은 히프 제한 부근의 마크 콤팩트 할당 실패 - Ionic 3의 JavaScript 힙 메모리 부족 (0) | 2022.09.04 |
Pentaho 데이터 통합 SQL 연결 (0) | 2022.09.04 |
ResultSet의 데이터를 열 이름과 함께 인쇄합니다. (0) | 2022.09.04 |