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
'IT' 카테고리의 다른 글
Python을 사용하여 CSV 파일을 편집 할 때 헤더를 건너 뜁니다 (0) | 2020.05.19 |
---|---|
쿼리 문자열을 배열로 구문 분석 (0) | 2020.05.19 |
스크립트가 소스인지 감지하는 방법 (0) | 2020.05.19 |
의사 요소에서 SVG를 내용으로 사용하는 방법이 있습니까 : before 또는 : after (0) | 2020.05.19 |
Joda-Time DateTime을 mm / dd / yyyy로만 포맷하는 방법은 무엇입니까? (0) | 2020.05.19 |