如何读取SPDK内NVME设备上的包装温度?

问题描述 投票:-1回答:1

我们正在评估使用SPDK作为内部框架,以使用NVMe设备构建数据记录器。

磁盘和SSD设备具有smartctl接口,可为您提供一段时间的包装温度。看起来smartctl现在已经足够智能,可以执行NVMe设备了。但是,一旦SPDK被“设置”,支持smartctl的内核模块就消失了,并且在这些设备上不再起作用。

我在规范中找到对“温度”阈值的引用,但没有找到“读取当前设备封装温度”。

Linux下的SPDK看起来像是一个不错的性能包,但是如果它阻止在底层硬件上获取基本的运行状况信息,那么它将是一个入门级的产品。

linux temperature nvme
1个回答
0
投票

今天早上我的想法正确,我想我应该分享:

  • 在“示例/ nvme”中,存在“标识”,它提供了许多通常从“ smartctl”获得的“健康”信息。
  • [如果您天真地尝试与“ perf”同时运行“ identify”,您会发现您可以运行一个或另一个,但不能同时运行,抱怨“声明”设备。
  • [如果您查看命令选项,则会发现“共享内存ID”,通常为“ -i ID”,表示多个进程共享的内存ID可以同时访问。您现在可以运行“ perf -i ID ...”,然后运行“识别-i ID ...”,例如,观察包装上的温度随时间上升。
  • [如果查看“ nvme / hello_world”的代码,您会发现spdk_env_opts具有字段“ shm_id”。这显然是从中填充的这些其他示例的命令行上具有上述“ -i ID”选项。如果你修复“ hello_world”以设置shm_id = -1(默认值-无共享内存),然后捕获并选择该字段并将其更新为ID值,您将可以获取“ hello_world”与“ perf”和/或“ identify”一起使用。
  • hello_world可能是制造更简单的温度传感器的地方(使用HEALTH消息作为数据源),或在较大的应用程序中包含健康检测。
  • 此过程仍会在所涉及的过程中产生缺陷。我还没想到[还]。
© www.soinside.com 2019 - 2024. All rights reserved.