본문 바로가기
MySql

MySQL 높은 CPU 사용량 및 영구 링크

by 베이스 공부 2020. 9. 30.
반응형

mysqld 프로세스에서 매우 높은 CPU 스파이크가 발생하고 있습니다 (100 % 이상, 심지어 한 지점에서 300 %까지 보임). 내 부하 평균은 .25, .34, .28입니다.


수행 할 주요 작업 중 하나는 영구 연결을 비활성화하는 것입니다. 그래서 php.ini와 mysql.allow_persistent = on mysql.max_persistent = -1 을 확인했습니다. 이는 제한이 없음을 의미합니다.

이것은 확실하게 변경하기 전에 몇 가지 질문을 제기합니다.

편집하다:

CPU 정보 : Core2Quad q9400 2.6 Ghz

 

해결 방법

 

영구 연결은 자체적으로 CPU를 사용하지 않습니다. 연결을 사용하는 것이 없으면 유휴 상태이며 약간의 메모리 만 사용하고 소켓을 차지합니다.

부하 평균은 그저 평균입니다. 1 초에 10 번 0 %에서 100 % 사이를 번갈아 가며 진행하는 프로세스가있는 경우 평균 부하가 0.5가됩니다. 장기간 지속되는 높은 CPU를 알아내는 데는 좋지만 본질적으로 스파이크의 징후를 숨기거나 제거합니다.

mysql과의 지속적인 연결은 일반적으로 필요하지 않습니다. MySQL은 상대적으로 빠른 연결 프로토콜을 가지고 있으며 영구 연결을 사용하여 시간을 절약하는 것은 상당히 적습니다. 단점은 연결이 지속되면 일관성없는 상태로 남을 수 있다는 것입니다. 예 : 연결을 사용하는 앱이 예기치 않게 종료되면 MySQL은이를 인식하지 못하고 정리를 시작합니다. 즉, 앱에 의해 생성 된 서버 측 변수, 잠금, 트랜잭션 등은 앱이 충돌했을 때의 상태로 유지됩니다.

다른 앱에서 연결을 다시 사용하면 싱크대에있는 더러운 접시와 수세되지 않은 화장실에서 시작합니다. 매달린 트랜잭션 / 잠금으로 인해 교착 상태가 매우 쉽게 발생할 수 있습니다. 새 앱은 이에 대해 알지 못하며 이전 앱은 더 이상이를 포기할 수 없습니다.

 

참조 페이지 https://stackoverflow.com/questions/7110230

 

 

반응형

댓글