web-dev-qa-db-ja.com

iostatのrMB_nor / s、rMB_dir / s、およびrMB_svr / sの違いは何ですか?

次のコマンドを実行した結果を解釈しようとしています

iostat -mnhyc

それは以下を生成します

Filesystem:               rMB_nor/s    wMB_nor/s    rMB_dir/s    wMB_dir/s    rMB_svr/s    wMB_svr/s     ops/s    rops/s    wops/s

/NFS_mount_path/    
                         376.46         0.00         0.00         0.00         0.98         0.00    132.80    129.60      0.00

NFSマウントから実際に読み取られているデータの量はどれくらいですか? rMB_nor/sまたはrMB_svr/sを検討する必要がありますか? iostatのマニュアルページには、rMB_nor/sはread(2)呼び出しを介してアプリケーションによって読み取られたMBの数であり、rMB_svr/sはNFSクライアントによってNFSREAD要求を介してサーバーから読み取られたMBの数であると記載されています。しかし、私はそれらの違いを正確に理解していません。 NFS READとread(2)の違いは何ですか? NFSマウントへのすべての読み取りをNFSREADにするべきではありませんか? rMB_svr/sがrMB_nor/s以上であると期待すべきではありませんか?

1
adhanlon

データがファイルシステムキャッシュで利用可能な場合、「read」syscallはデータを取得しますが、NFSサーバーに送信される読み取り要求はありません。これは、アプリケーションが同じブロックを複数回読み取る場合、またはユーザーが同じファイルを複数回開く場合に発生する可能性があります。ファイルシステムキャッシュをフラッシュして、iostatの結果を再度確認できます。

# echo 3 > /proc/sys/vm/drop_caches
1
kofemann