2012-07-01 2 views
3

나는 Amazon Linux AMI에서 MySQL을 실행 중이다. 거기에는 아무 것도 연결되어 있지 않습니다. MySQL을 사용하는 연결 및 다른 응용 프로그램은 실행되지 않습니다. 완전히 유휴 상태이지만, top은 mysql이 CPU의 62 %를 사용하고 있다고보고하고 있습니까? 왜 이런 일이 일어나고 어떻게 해결할 수 있습니까? 내 문제는 확실히 리드 둘째 버그에 관련이 :EC2 Amazon Linux AMI MySQL CPU @ 62 % 유휴 상태 일 때?

Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 97.8%id, 0.0%wa, 0.0%hi, 0.0%si, 1.7%st 
Mem: 1738504k total, 390708k used, 1347796k free, 56888k buffers 
Swap: 917500k total,  0k used, 917500k free, 229804k cached 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
2959 mysql  20 0 466m 39m 5244 S 62.2 2.3 4:00.67 mysqld 
    1 root  20 0 19252 1504 1212 S 0.0 0.1 0:00.20 init 
    2 root  20 0  0 0 0 S 0.0 0.0 0:00.00 kthreadd 

mysql> show processlist; 
+----+------+-----------+------+---------+------+-------+------------------+ 
| Id | User | Host  | db | Command | Time | State | Info    | 
+----+------+-----------+------+---------+------+-------+------------------+ 
| 5 | root | localhost | NULL | Query | 0 | NULL | show processlist | 
+----+------+-----------+------+---------+------+-------+------------------+ 

UPDATE는 ... 더 연결이 없습니다. 명성은 nico-ekito입니다. 감사! 때문에,

strace -p 2959 

일반적으로, strace를 즉시 차단하고 (선택하는 당신에게 전화를 표시해야합니다) : 내가 생각할 수있는

+0

CPU 인덱싱, 처리, 루핑 등을 사용할 수 있습니까? 100 % CPU 또는 60 %는 반드시 문제가되지 않습니다. 그것은 당신이 지불 한 돈이 사용된다는 것을 의미합니다. – Linuxios

+1

어쩌면 두 번째와 관련이 있습니다. http://stackoverflow.com/questions/11279076/why-does-the-leap-second-cause- 및 http://blog.mozilla.org/it/2012/06/30/mysql -and-the-leap-second-high-cpu-and-the-fix/ –

+0

예! 나는 그것이라고 생각한다. 내 Java 프로세스도 똑같은 일을합니다. 그것은 모두 7/1 00:00:00에 시작되었습니다. 재부팅하고 사라지는 지 확인합니다. 이 댓글을 답으로 다시 보내 주시면 승인하겠습니다 (재부팅 및 확인 과정이 보류 중입니다 :). – Jeff

답변

0

이 질문을 마무리하십시오. 내 문제는 실제로 도약 두 번째 실패와 관련이 있습니다.

1

있는 유일한 방법은 사용자 루트로, 어떤 mysqld가 정말 strace를를 사용하고있는 검사하는 것입니다 mysqld는 연결을 기다려야한다.

통화가 무언가 같이해야한다 :

select(SOCKETNO, [OTHER_FDs], NULL, NULL, NULL) 

특히 중요한 시간 제한 timeval 형이다 네 번째 매개 변수입니다. NULL의 경우, 누군가가 접속할 때까지 mysqld가 sleeve 할 것을 의미한다. NULL이 아니면 mysqld가 지정된 시간 동안 대기 한 다음 유지 관리 작업을 수행한다는 의미입니다. 아주 작은 시간대는 CPU 소비를 설명 할 수 있습니다.

MySQL은 항상 NULL (무한) 시간 제한을 사용한다고 생각합니다. 그것은 의미가 있으며 이것은 내가 지금 도달 할 수있는 mysqlds가 어떻게 동작 하는지를 설명한다.

그러나 선택을 다시 시도하지 못하게하는 연결 처리 문제가있을 수 있습니다. 이 동작이 mysqld가 시작 되 자마자 나타나는지 또는 누군가가 연결 한 후에 나타나는지 확인하십시오.

관련 문제