有没有办法从NVMe设备获取读/写队列延迟?如果它没有被分割用于读/写,那总比没有好,但理想情况下我可以单独看到它们.
我想要低于通常的毫秒水平,到目前为止还没有找到任何东西.
解决方法
NVMe有日志页面,在日志页面02h中找到了您想要的唯一内容,它包含以下信息:
>数据单位读取
>写入数据单位
>主机读命令
>主机写命令
>控制器忙时间
因此,您可以获取主机读取和写入命令的数量,并将它们与控制器繁忙时间分开,如果您在相对较短的时间间隔内执行此操作,并从先前的值中减去当前值,您将获得该时间内命令的平均时间间隔.不漂亮,但足够接近.
如果您使用的是Linux,则可以使用nvme-cli命令获取此数据.
以上是所有内部延迟,如果您需要端到端延迟,则必须在自己的应用程序中自行测量. Linux中的/ proc / diskstats中有一个类似的机制,它显示了命令数和平均值的“繁忙时间”.