NVMe 延迟监控

NVMe 延迟监控

有没有办法从 NVMe 设备获取读/写队列延迟?如果不将其拆分为读/写,那总比没有好,但理想情况下我可以分别查看它们。

我希望低于通常的毫秒级别,但目前还没有发现任何问题。

答案1

NVMe 有日志页,唯一接近您想要的内容是在日志页 02h 中找到的,它包含以下信息:

  • 读取的数据单元
  • 写入的数据单元
  • 主机读命令
  • 主机写命令
  • 控制器繁忙时间

因此,您可以取主机读写命令的数量,然后将其除以控制器繁忙时间,如果您在相对较短的时间间隔内执行此操作,并从先前的值中减去当前值,您将获得该时间间隔内命令的平均时间。结果不理想,但足够接近了。

如果您使用的是 Linux,则可以使用 nvme-cli 命令来获取此数据。

以上都是内部延迟,如果您想要端到端延迟,则必须在自己的应用程序中自行测量。Linux 中的 /proc/diskstats 中有一个类似的机制,可以显示命令数量和它们的“繁忙时间”平均值。

相关内容