次のいくつかのパラメータでグループ化されたディスク統計を取得する方法はありますか?
サイズ/遅延時間別に作成しますか?サイズ/遅延時間で読みますか?
それは次のとおりです。
total writes - 100
writes by size:
- < 4096 - 20
- 4096 - 16384 - 30
...
ここで、4096/16384はブロックサイズです。
答え1
eBPF を使用してレイテンシ別にグループ化します。https://github.com/iovisor/bcc/blob/v0.9.0/tools/biolatency_example.txt
サイズ別に分類する方法はよくわかりません。 eBPFまたはblktraceを使用することは確かに可能です。 (オーバーヘッドが少し高いと思いますblktrace
。)
混乱して、ある種のblock/blk-stat.c
待ち時間ヒストグラムが実装されています。 (「バケット」への参照を参照してください。 ただし、カーネル内のいくつかの場所でのみ使用され、カーネルの外では使用できません。