IT

MySQL의 높은 CPU 사용률

lottoking 2020. 5. 19. 08:28
반응형

MySQL의 높은 CPU 사용률


최근에 서버 CPU가 매우 높아졌습니다.

CPU로드는 평균 13.91 (1 분) 11.72 (5 분) 8.01 (15 분)이며 내 사이트의 트래픽은 약간만 증가했습니다.

top 명령을 실행 한 후 MySQL이 160 % CPU를 사용하고 있음을 알았습니다!

최근에 테이블을 최적화하고 영구 연결로 전환했습니다. 이것이 MySQL이 많은 양의 CPU를 사용하게 만들 수 있습니까?


먼저 영구 연결은 거의 항상 좋은 것보다 더 많은 해를 끼치므로 영구 연결을 해제하고 싶을 것입니다.

둘째로, 누군가 원격 서버에서 연결할 수 없는지 확인하기 위해 MySQL 사용자를 다시 확인하고 싶다고 말하고 싶습니다. 이것은 또한 확인해야 할 주요 보안 사항입니다.

셋째 , 오랜 시간이 걸리는 쿼리를 주시하기 위해 MySQL 느린 쿼리 로그를 켜고 키 ​​테이블을 너무 오래 잠그는 쿼리가 없도록하는 데 사용하고 싶습니다.

확인할 수있는 다른 사항은 CPU로드가 높을 때 다음 쿼리를 실행하는 것입니다.

SHOW PROCESSLIST;

현재 실행 중이거나 큐에서 실행중인 쿼리, 쿼리가 수행하는 작업 및 수행중인 작업이 표시됩니다 (이 명령은 쿼리가 너무 길면 잘립니다. SHOW FULL PROCESSLIST를 사용하여 전체 쿼리 텍스트를 볼 수 있음) .

버퍼 크기, 테이블 캐시 , 쿼리 캐시innodb_buffer_pool_size (innodb 테이블을 사용하는 경우) 같은 것들을 주시하고 싶을 것 입니다. 이러한 모든 메모리 할당은 쿼리 성능에 영향을 미치므로 MySQL이 CPU를 먹습니다.

또한 다음과 같은 정보가 포함되어 있으므로 다음 내용을 읽어보십시오.

프로파일 러를 사용하는 것도 좋습니다. 당신이 원할 때 당신이 켤 수있는 것은 당신의 어플리케이션이 어떤 쿼리를 실행하는지, 중복 된 쿼리가 있는지, 얼마나 오래 걸리는지 등을 보여줄 것입니다. 이와 같은 예는 제가 작업 한 것입니다 PHP 프로파일 러 이지만 많은 것이 있습니다. Drupal, Joomla 또는 Wordpress와 같은 소프트웨어를 사용하는 경우 수동으로 아무것도 통합하지 않고도이 정보를 얻을 수있는 모듈이있을 수 있으므로 커뮤니티 내에서 물어보십시오.


MySQL이 높은 CPU 사용량 또는 부하를 위해 Google을 사용하는 경우 이것이 최고의 게시물이므로 추가 답변을 추가하겠습니다.

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

반응형