2012-04-05 18 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-ロックセマフォ上にスピンや待機を必要としている回数 上のセマフォと統計のために待機しているスレッドをレポートします。セマフォーを待つ多数のスレッド は、ディスクI/OやInnoDB内の競合の問題の結果である可能性があります。 オペレーティングシステムのスレッドスケジューリングである のクエリや問題の重度の並列性が原因です。

+0

私はドキュメントを見ましたが、私はそれが示している統計について心配しています、彼らは本当に遅さを引き起こしていますか?あなたは、あなたが使用した答えを受け入れる、有用な答えにポイントを与える、 –

+0

言うのは難しい。統計は遅くなることはありませんが、問題が発生している可能性があることを示しています。例えば、O'Reilly Boookの "High Performance MySQL"のようなMySQLの専門家のヒントに従ってください。ベンチマーク、プロファイリング、および遅いクエリログの検査によって潜在的なボトルネックを見つけてください。 2.データベースシーマとインデックスの最適化を試みます。3.必要なデータのみを最速で取得して、クエリのパフォーマンスを最適化します。 – 0x4a6f4672