RAID1アレイを再同期しています。 /proc/mdstat
予想速度で進行中であることを示していますが、iotop
すべての点でディスクがアイドル状態であることを示しています。md127_resync
カーネルスレッドが言及されていますが、IOは表示されません。これはカーネルスレッドによって行われると推測されますman iotop
。
このIOがに表示されないことをどのように説明しますかiotop
?説明には、他のタイプのIOも発生しないという内容は記載されていますか?
私はDebian 9を使用しています。
答え1
注意深く読むとTIPがありますman iotop
少なくとも、CONFIG_TASK_DELAY_ACCT、CONFIG_TASK_IO_ACCOUNTING、CONFIG_TASKSTATS、およびCONFIG_VM_EVENT_COUNTERSオプションは、Linuxカーネルビルド構成で有効にする必要があります。
iotopは、サンプリング期間中にプロセス/スレッドごとに読み書きされたI / O帯域幅列を表示します。また、スレッド/プロセスが交換してI/Oを待つのに費やした時間の割合も表示します。各プロセスに対応するI / O優先順位(クラス/レベル)が表示されます。
インターフェイスの上部には、サンプリング期間中に読み書きされた合計I / O帯域幅も表示されます。 Total DISK READ および Total DISK WRITE 値は、一方のプロセスとカーネル・スレッド、他方のカーネル・ブロック・デバイス・サブシステムとの間の総読取りおよび書込み帯域幅を表します。 Actual DISK READおよびActual DISK WRITE値は、カーネルブロックデバイスサブシステムと基本ハードウェア(HDD、SSDなど)間の物理ディスクI / Oに対応する帯域幅を表します。したがって、Linuxカーネル内で発生するデータキャッシュとI / O操作の並べ替えにより、合計値と実際の値が特定の瞬間に等しくない可能性があります。
CONFIG_TASK_DELAY_ACCT、CONFIG_TASK_IO_ACCOUNTING、CONFIG_TASKSTATSは、各ジョブの統計で構成されているように聞こえますTotal
。そしてCONFIG_VM_EVENT_COUNTERSは単一の全体的な統計ですActual
(/proc/vmstat
設定オプションが見つかった場合)。仮想メモリを意味するVM部分は、これがカーネルバッファリングIO、つまりページキャッシュを介したIOに関するものであることを強く示唆しています。つまり、これらの統計情報は、IO が進行するにつれてキャプチャされます。~からデバイスサブシステムをブロックするVMサブシステム。
これが私に意味するのは、仮想マシンをバイパスするIOは含まれない可能性があるということですiotop
。O_DIRECT
また、ソフトウェアRAID(およびLVMなど)を介して転送されるIOの二重計算を防ぐ方法と、他のiotop
ブロックデバイスを計算する機能がない理由も説明します。
RAID再同期IOはページキャッシュを通過する必要はありません。非同期IOといくつかの類似点があると思われるカーネルAPIを使用します(Linuxは非同期IOに対してO_DIRECTのみをサポートします)。したがって、ページキャッシュが提供する非同期書き込み保存および先読みを有効または無効にしてもread()
パフォーマンスwrite()
の制限は発生しません。