嘿,想知道是否有人可以帮助我,我正在了解 cassandra,但我很好奇,想测量当我从列族读取时发生了多少磁盘 I/O。
我查看了 opscentre 分析器,但我能找到的唯一指标是磁盘利用率,但据我了解,这是 CPU 花费在磁盘 I/O 上的时间,所以我猜测它的测量内容,如上下文切换时间。然而,既然它这样做了,我想也许一定有一点,当 cassandra 意识到它确实必须进入磁盘时,我可以在那里放一个计数器。
另一个选项可以在读取调用周围放置两个时间戳,如果它是毫秒级的,那么我知道它是磁盘读取。但是我不完全确定系统调用在哪里,我认为我将它定位在 RandomAccessReader 的 reBuffer() 方法中(int n = super.read(buffer, read, buffer.length - read);)但是它没有当我查询列族时似乎不是这样。
简而言之,关于如何计算正在发生的磁盘 I/O 数量的任何想法?