誰かが私を助けてくれるかどうか疑問に思っていました。cassandra のことをよく知っていますが、興味があり、列ファミリーから読み取っているときに発生したディスク I/O の数を測定したかったのです。
私はopscentreプロファイラを見ましたが、私が見つけた唯一のメトリックはディスク使用率でしたが、私が理解していることから、これはCPUがディスクI / Oに費やす時間であるため、コンテキスト切り替え時間などの測定値を推測しています. ただし、これを行うので、cassandraがディスクに移動する必要があることに気付いた時点が必要だと思いました。そこにカウンターを置くことができます。
もう1つのオプションは、読み取り呼び出しの周りに2つのタイムスタンプを置くことができ、ミリ秒のオーダーであれば、ディスク読み取りであることがわかります。ただし、システムコールがどこにあるのか完全にはわかりません.reBuffer()メソッド(int n = super.read(buffer、read、buffer.length - read);)のRandomAccessReaderにあると思いましたが、そうではありません'列ファミリーを照会すると、そのように見えません。
要するに、発生しているディスク I/O の数を把握する方法についてのアイデアはありますか?