高いディスクI / Oがシステムの応答性/パフォーマンスを低下させるのはなぜですか?


19

高いディスクI / Oがシステムをそれほど遅くした理由を私はまったく理解していませんでした。スローダウンはハード/オプティカルドライブのデータに依存するプロセスにのみ影響を与えると予想されますが、スローダウンはRAMにロードされたものにも影響を与えるため、私にとっては奇妙です。私はここでiowaitについて言及しています

他の作業を行う代わりに、プロセッサが待機するのはなぜですか?誰でもこの制限を説明できますか、なぜLinuxカーネルで解決されなかったのですか?この問題がないカーネルはありますか?

[ ] このパフォーマンス分野ではいくつかの進歩がありました。1つは、後のカーネル(私の場合は2.6.37)の応答性がはるかに高いことです。


最後に尋ねたときに、Linuxカーネルでこれがどのように解決されたかを正確に説明しなかったのですか?
マイケルMrozek

2
編集を考えると、この問題はなぜ問題が存在するのに関する問題であるのに対し、前の質問は問題の修正に向けた進捗状況に関するものであると考えています。
スティーブンD

@micスティーブンは正しい。前の質問で私が何を意味したかについて長い議論がありました。xenoの答えは非常に良かったので、質問をそれに合わせて編集し、元の質問をここで再度尋ねました。
シェパン

私は理解していますが、あなたの質問は他の質問と矛盾しているようです。ここでは、「この制限について説明できますか。Linuxカーネルで解決されない理由はありますか?この問題がないカーネルはありますか?」と言いますが、xenoの答えは解決されました。」
マイケルMrozek

@micそうではありません。カーネルはまだiowaitを実行します。つまり、待機します。システムの応答性が改善されたため、xenoの回答を見ています。そして、私が質問で指摘したように、私は同意します。
シェパン

回答:


9

オペレーティングシステムは仮想メモリを利用するため、使用可能な物理RAMよりも多くのメモリを使用できます。カーネルが物理メモリページの使用に適していると判断した場合、そのコンテンツはディスク上のストレージに「ページアウト」される可能性があります。このような仮想メモリページがページアウト中にアクセスされると、ページフォールトが生成され、ディスクからRAMに戻されます。

ディスクレイテンシはミリ秒単位で測定され、RAMレイテンシはナノ秒単位で測定されるため、ページフォールトはパフォーマンスにとって大きな障害になります。(1ミリ秒= 100万ナノ秒!)

メモリは、ユーザープロセスだけでなく、ファイルシステムキャッシュなどのカーネルでも使用されます。ファイルシステムの動作中、カーネルは最近使用したデータをキャッシュします。仮定は、同じデータがすぐに再び使用される可能性が高いため、キャッシュによってI / Oパフォーマンスが向上することです。

ファイルシステムキャッシュに使用されている物理メモリはプロセスに使用できないため、ファイルシステムのアクティビティ中により多くのプロセスメモリがページアウトされ、ページフォールトが増加します。また、メモリページをディスクとの間で移動するために使用できるディスクI / O帯域幅が少なくなります。その結果、プロセスが停止する場合があります。


これはごみと同じくらい古いことはわかっていますが、その発生方法によっては、大量のI / Oによって大量の割り込みが生成され、その結果コンテキストがCPU時間を浪費することがあります。
Bratchley

5

私が理解している限り、IOwaitは、プロセッサではなくプロセスがIOが利用可能になるのを待っていることを意味します。プロセッサはハードドライブよりもはるかに高速になっています。つまり、より多くのコードがより速く終了し、ディスクを読み取る必要があることを意味します。ドライブが十分に速く実行できるよりも多くの読み取りが必要な場合、プロセッサが待機することになります。誰がディスクに読み書きするかを決定する方法は、ブロックスケジューラによって決定されます。ほとんどの場合、現在はCFQです。CFQを使用していて、システムの応答性を向上させるために全体的なIO時間を短縮するプロセスが必要な場合は、を使用できますionice -c3 <processid>。これは、他に何も必要としない場合にのみこのプロセスにIOを与えるようにシステムに指示します。

これはまだ興味深いもので、iowaitの問題をよりよく説明しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.