質問: wmb / sが低いときに高いiowait mysqlテーブルにインデックスを付けていました。それはそのコンピュータに高い負荷をかけます。iowaitが高いためと思われます。しかし、それはまた、wmb/sがわずか2.87であることも示しています。一般的なsata hddでも2.87mb/s以上を処理できませんか?なぜプロセスはそんなに遅いのですか?iostat -xレポート:avg-cpu: %user %nice %system %iowait %steal %idle 1.74 0.00 3.48 47.51 0.00 47.26 device: rrqm/s wrqm/s r/s w/s rmb/s wmb/s avgrq-sz avgqu-sz await svctm %util sda 0.00 300.00 0.00 383.00 0.00 2.87 15.35 142.00 374.64 2.61 99.90 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-0 0.00 0.00 0.00 2507.00 0.00 9.79 8.00 263.88 110.06 0.40 99.90 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-2 0.00 0.00 0.00 2.00 0.00 0.01 8.00 0.41 196.00 202.50 40.50 dm-3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
回答: これを監視しながらiostatを数回実行して、何が起こっているのかを正確に把握する必要があります。または、 cacti のようなツールを使用して、このような統計を長期間保持し、履歴グラフを確認します。最も可能性が高いのは、dbテーブルのスキャンが原因で、ディスクも大量の読み取りを行っていることです。投稿したiostatの実行は、dbmsが読み取りではなく書き込みを行っていたときに行われたものです。 。読み取りとインターリーブされた書き込みは、シークを伴うため、ハードディスク上で実際に遅くなります。これは、ハードドライブが行う最も遅い処理です。ハードドライブを聞いていると、ハードディスクのさまざまな部分への書き込みと読み取りが急速に切り替わるので、狂ったように聞こえるでしょう。このプロセスを期待する2桁のmbyte/sレートで実行するには、プロセスを2つに分割し、テーブルスキャンの実行中にram)でインデックスを作成する必要があります。 、次に完全なインデックスを書き出します。mysqlは高度に最適化されたソフトウェアであるため、これができた場合これを実行すると、そうなると期待します。 t、それはできません。つまり、それを行うのに十分なramがない可能性があります。つまり、物理的なramマシンで、mysqlの部分に完全なインデックスを含めるか、システムのramのmysql構成ファイルで十分に高い部分を指定していません。mysqlのチューニングはただし、別のフォーラムのトピック。