2012-04-05 7 views
0

나는 SHOW ENGINE INNODB STATUS 명령을 실행했다. 응답 속도가 느린 것을 감지하기 위해 mysql에서 다음은 Semaphore의 스택 트레이스이다. 그러나 이것에 익숙하지 않기 때문에 통계를 파악할 수 없다. 우리가 어떤 것을 추적 할 수 있는지 알려주기 바란다.느린 반응성 MySQL

SEMAPHORES 
---------- 
OS WAIT ARRAY INFO: reservation count 22124, signal count 103334 
Mutex spin waits 2140674, rounds 1742014, OS waits 8304 
RW-shared spins 24931, OS waits 4171; RW-excl spins 1775, OS waits 8282 
Spin rounds per wait: 0.81 mutex, 10.20 RW-shared, 210.67 RW-excl 
+2

이것은 DBA 사이트에서 더 적합 할 수 있습니까? 그것은 정말로 저에게 프로그래밍 문제처럼 보이지 않습니다. 또한 이전 질문으로 돌아가서 후속 조치를 취하는 것이 좋습니다. 사용했던 답변을 수락하고, 유용한 답변을 제공하고, 자신의 솔루션을 추가하십시오. – Nanne

답변

0

MySQL documentation for InnoDB Monitors을 살펴보십시오. 그것은 말한다 :

이 [세마포어] 스레드가 스핀 또는 뮤텍스에 대기 또는 RW 잠금 세마포어를 필요로 얼마나 많은 시간 에 세마포어와 통계를 기다리고 섹션 보고서 스레드. semaphores를 기다리는 많은 수의 스레드가 디스크 I/O 또는 InnoDB 내의 경합 문제의 결과 일 수 있습니다. 운영 체제 스레드 스케줄링 에서 쿼리 또는 문제의 많은 병렬 처리로 인해 경합이 발생할 수 있습니다.

+0

설명서를 보았지만 통계가 표시되는 것에 대해 우려하고 있습니다. 실제로 느려지고 있습니까? –

+0

말하기 힘들다 .. 통계는 결코 느려짐을 초래하지 않으며, 단지 문제가있을 수 있다는 것을 나타냅니다. O'Reilly Boook "고성능 MySQL"과 같은 MySQL 전문가의 조언을 따르십시오. 1. 쿼리 로그를 벤치마킹, 프로파일 링 및 검사하여 잠재적 인 병목 현상을 찾으십시오. 2. 데이터베이스 셰마와 인덱스를 최적화하십시오. 3. 가능한 가장 빠른 방법으로 필요한 데이터 만 검색하여 쿼리 성능을 최적화하십시오. – 0x4a6f4672