每秒记录传感器数据

每秒记录传感器数据

我是这个论坛的新手,所以如果我做错了什么,请告诉我。我做了一些研究,但我不明白我的问题的正确答案。我需要将 CPU 温度、负载和风扇速度保存在一个或多个文件中,以便能够分析我的系统的行为。我发现有趣的以前有用的讨论是: 如何监控和记录服务器硬件温度和负载如何记录 CPU 负载?。我仍然不明白如何每 0.5 秒记录一次这些数据,以及使用某些脚本或某些特定软件是否更方便。提前谢谢您。

编辑:我发现 psensor 具有内置日志记录功能,但它是某种测试版功能...它接近我想要的,但是日志文件太混乱了,我无法将采样时间设置为少于 1 秒(这不是严格必要的,但在某些情况下可能会有所帮助)。

答案1

对于支持该功能的处理器,turbostat(具有额外内核版本依赖项的 linux-tools-common 软件包)可以监控处理器核心和软件包温度以及 CPU 负载。但它无法监控风扇速度。

它适用于所有现代 Intel 处理器和部分 AMD 处理器。它是唯一一款上游升级会认可的权威工具。它有很多监控选项。

我自己几乎总是运行这个命令(无负载,然后有负载,然后无负载):

$ sudo turbostat --Summary --quiet --show Busy%,Bzy_MHz,PkgTmp,PkgWatt,GFXWatt,IRQ --interval 6
Busy%   Bzy_MHz IRQ     PkgTmp  PkgWatt GFXWatt
0.03    800     214     30      1.24    0.00
0.03    800     142     30      1.24    0.00
0.02    800     96      30      1.24    0.00
0.34    800     292     30      1.24    0.00
16.78   4474    8467    46      22.15   0.00
16.76   4600    7880    45      23.03   0.00
16.76   4600    7742    46      23.11   0.00
15.95   4599    7336    31      21.96   0.00
0.03    800     150     30      1.24    0.00
0.02    800     123     30      1.24    0.00

如果所有 CPU 都处于 100% 繁忙状态,则 Busy% 列将为 100%。在上面的例子中,处理器有 6 个 CPU,在加载阶段,其中一个 CPU 的繁忙状态为 100%,即 6 个 CPU 中的 16.67%。

我很少使用短间隔。通常用户似乎没有意识到空闲的 CPU 可以一次进入深度空闲状态数秒,他们唤醒它们只是为了采样一些东西。

有一个记录到文件选项,--out 文件名。

如果省略 --quiet 命令行选项,启动期间还会显示大量有关处理器的信息。例如:

~$ sudo ~/turbostat --Summary --show Busy%,Bzy_MHz,PkgTmp,PkgWatt,GFXWatt,IRQ --interval 6
turbostat version 20.03.20 - Len Brown <[email protected]>
CPUID(0): GenuineIntel 0x16 CPUID levels; 0x80000008 xlevels; family:model:stepping 0x6:9e:d (6:158:13)
CPUID(1): SSE3 MONITOR SMX EIST TM2 TSC MSR ACPI-TM HT TM
CPUID(6): APERF, TURBO, DTS, PTM, HWP, HWPnotify, HWPwindow, HWPepp, No-HWPpkg, EPB
cpu4: MSR_IA32_MISC_ENABLE: 0x00850089 (TCC EIST MWAIT PREFETCH TURBO)
CPUID(7): SGX
cpu4: MSR_IA32_FEATURE_CONTROL: 0x00020005 (Locked )
CPUID(0x15): eax_crystal: 2 ebx_tsc: 308 ecx_crystal_hz: 0
TSC: 3696 MHz (24000000 Hz * 308 / 2 / 1000000)
CPUID(0x16): base_mhz: 3700 max_mhz: 4600 bus_mhz: 100
cpu4: MSR_MISC_PWR_MGMT: 0x00401cc0 (ENable-EIST_Coordination DISable-EPB DISable-OOB)
RAPL: 2759 sec. Joule Counter Range, at 95 Watts
cpu4: MSR_PLATFORM_INFO: 0x8080838f1012500
8 * 100.0 = 800.0 MHz max efficiency frequency
37 * 100.0 = 3700.0 MHz base frequency
cpu4: MSR_IA32_POWER_CTL: 0x003c005d (C1E auto-promotion: DISabled)
cpu4: MSR_TURBO_RATIO_LIMIT: 0x2b2b2e2e2e2e2e2e
43 * 100.0 = 4300.0 MHz max turbo 8 active cores
43 * 100.0 = 4300.0 MHz max turbo 7 active cores
46 * 100.0 = 4600.0 MHz max turbo 6 active cores
46 * 100.0 = 4600.0 MHz max turbo 5 active cores
46 * 100.0 = 4600.0 MHz max turbo 4 active cores
46 * 100.0 = 4600.0 MHz max turbo 3 active cores
46 * 100.0 = 4600.0 MHz max turbo 2 active cores
46 * 100.0 = 4600.0 MHz max turbo 1 active cores
cpu4: MSR_CONFIG_TDP_NOMINAL: 0x00000025 (base_ratio=37)
cpu4: MSR_CONFIG_TDP_LEVEL_1: 0x00000000 ()
cpu4: MSR_CONFIG_TDP_LEVEL_2: 0x00000000 ()
cpu4: MSR_CONFIG_TDP_CONTROL: 0x80000000 ( lock=1)
cpu4: MSR_TURBO_ACTIVATION_RATIO: 0x00000000 (MAX_NON_TURBO_RATIO=0 lock=0)
cpu4: MSR_PKG_CST_CONFIG_CONTROL: 0x00000000 (UNlocked, pkg-cstate-limit=0 (pc0))
cpu4: cpufreq driver: intel_pstate
cpu4: cpufreq governor: powersave
cpufreq intel_pstate no_turbo: 0
cpu4: MSR_MISC_FEATURE_CONTROL: 0x00000000 (L2-Prefetch L2-Prefetch-pair L1-Prefetch L1-IP-Prefetch)
cpu0: MSR_PM_ENABLE: 0x00000001 (HWP)
cpu0: MSR_HWP_CAPABILITIES: 0x0108252e (high 46 guar 37 eff 8 low 1)
cpu0: MSR_HWP_REQUEST: 0xff002e08 (min 8 max 46 des 0 epp 0xff window 0x0 pkg 0x0)
cpu0: MSR_HWP_INTERRUPT: 0x00000000 (Dis_Guaranteed_Perf_Change, Dis_Excursion_Min)
cpu0: MSR_HWP_STATUS: 0x00000004 (No-Guaranteed_Perf_Change, No-Excursion_Min)
cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (balanced)
cpu0: MSR_RAPL_POWER_UNIT: 0x000a0e03 (0.125000 Watts, 0.000061 Joules, 0.000977 sec.)
cpu0: MSR_PKG_POWER_INFO: 0x000002f8 (95 W TDP, RAPL 0 - 0 W, 0.000000 sec.)
cpu0: MSR_PKG_POWER_LIMIT: 0x4283e800dd8320 (UNlocked)
cpu0: PKG Limit #1: ENabled (100.000000 Watts, 28.000000 sec, clamp ENabled)
cpu0: PKG Limit #2: ENabled (125.000000 Watts, 0.002441* sec, clamp DISabled)
cpu0: MSR_DRAM_POWER_LIMIT: 0x5400de00000000 (UNlocked)
cpu0: DRAM Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x00000000 (UNlocked)
cpu0: Cores Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x00000000 (UNlocked)
cpu0: GFX Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x0064100d (100 C)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x88460000 (30 C)
cpu0: MSR_IA32_PACKAGE_THERM_INTERRUPT: 0x00000003 (100 C, 100 C)
cpu4: MSR_PKGC3_IRTL: 0x00000000 (NOTvalid, 0 ns)
cpu4: MSR_PKGC6_IRTL: 0x00000000 (NOTvalid, 0 ns)
cpu4: MSR_PKGC7_IRTL: 0x00000000 (NOTvalid, 0 ns)
cpu4: MSR_PKGC8_IRTL: 0x00000000 (NOTvalid, 0 ns)
cpu4: MSR_PKGC9_IRTL: 0x00000000 (NOTvalid, 0 ns)
cpu4: MSR_PKGC10_IRTL: 0x00000000 (NOTvalid, 0 ns)
Busy%   Bzy_MHz IRQ     PkgTmp  PkgWatt GFXWatt
0.03    800     184     30      1.32    0.00

Turbostat 没有内核版本依赖关系,但 Ubuntu 版本包含在相当严格的脚本

答案2

如果你准备做更多的阅读/研究/实验(这不仅仅是一个简单的“安装和使用”解决方案),那么你可以使用如下工具普罗米修斯具体来说节点导出器在此上下文中, anode是您的 PC。节点导出器可以定期(可配置)从您的 PC 捕获大量数据。Prometheus 有一个基本的基于 Web 的界面来查询这些数据。

Ubuntu 存储库中有 Prometheus 的各个版本,因此入门可能很简单:

sudo apt-get install prometheus prometheus-node-exporter

如果你想要报告/分析/绘制捕获的数据,那么你可能需要其他工具。我使用格拉法纳它支持包括 Prometheus 在内的许多数据源。它允许您以多种不同的方式轻松绘制当前/历史数据图表。

答案3

我建议使用稳定且简单的RRD工具收集D基于解决方案。

可能是:

您必须在其他地方阅读更多有关这两种工具的设置的信息。
无论如何,collectd 非常流行且轻量,因为它用于具有少量 RAM 的 OpenWRT 路由器。

相关内容