Debian/Ubuntu下如何给CPU加压直至达到指定温度?
Debian/Ubuntu 下CPU指定温度负载测试方案
一、依赖工具安装
先安装压力测试工具和温度监控组件:
sudo apt update && sudo apt install -y stress-ng lm-sensors
执行sudo sensors-detect --auto初始化温度传感器驱动,确保系统能正常读取CPU温度数据。
二、确认CPU温度路径
运行sensors命令查看CPU温度输出,找到对应的温度传感器文件路径,常见路径如/sys/class/hwmon/hwmon0/temp1_input(文件内容为毫摄氏度,例如80℃对应数值80000)。
三、自动化负载脚本
以下脚本会自动施加CPU负载,直到温度达到设定值后停止:
#!/bin/bash # 配置参数 TARGET_TEMP=80000 # 目标温度(毫摄氏度,80℃=80000) TEMP_PATH="/sys/class/hwmon/hwmon0/temp1_input" # 替换为你的温度传感器路径 CHECK_INTERVAL=5 # 温度检测间隔(秒) # 检查依赖是否安装 if ! command -v stress-ng &> /dev/null || ! command -v sensors &> /dev/null; then echo "正在安装依赖..." sudo apt update && sudo apt install -y stress-ng lm-sensors sudo sensors-detect --auto fi # 启动CPU满负载(--cpu 0表示使用所有CPU核心) echo "开始施加CPU负载..." stress-ng --cpu 0 --timeout 1000000s & STRESS_PID=$! # 循环检测温度 while true; do CURRENT_TEMP=$(cat "$TEMP_PATH") CURRENT_TEMP_C=$((CURRENT_TEMP / 1000)) TARGET_TEMP_C=$((TARGET_TEMP / 1000)) echo "当前CPU温度: ${CURRENT_TEMP_C}℃ | 目标温度: ${TARGET_TEMP_C}℃" if [ "$CURRENT_TEMP" -ge "$TARGET_TEMP" ]; then echo "已达到目标温度,停止负载..." kill "$STRESS_PID" exit 0 fi sleep "$CHECK_INTERVAL" done
脚本使用步骤:
- 将脚本保存为
cpu_temp_stress.sh - 赋予执行权限:
chmod +x cpu_temp_stress.sh - 以root权限运行:
sudo ./cpu_temp_stress.sh
四、手动测试方式
如果不需要自动化,可手动执行以下步骤:
- 后台启动CPU负载:
stress-ng --cpu 0 & - 实时监控温度:
watch -n 2 sensors - 达到目标温度后,停止负载:
pkill stress-ng
注意:测试前确保设备散热正常,避免硬件过热损坏。
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

