收起左侧

cpu压力测试脚本

0
回复
25
查看
[ 复制链接 ]

1

主题

0

回帖

0

牛值

江湖小虾

#!/bin/bash

# CPU压力测试脚本 - 用于测试服务器散热能力
# 用法: ./cpu_stress_test.sh [持续时间(秒)]
# 如果未指定持续时间,默认为60秒

set -e

DURATION=${1:-60}  # 默认60秒

# 检查stress-ng是否安装
if ! command -v stress-ng &> /dev/null; then
    echo "stress-ng 未安装。正在尝试安装..."
    if command -v apt-get &> /dev/null; then
        sudo apt-get update && sudo apt-get install -y stress-ng
    else
        echo "错误: 无法自动安装stress-ng。请手动安装: sudo apt-get install stress-ng"
        exit 1
    fi
fi

# 获取CPU核心数
CPU_CORES=$(nproc)

echo "========================================"
echo "CPU压力测试开始"
echo "CPU核心数: $CPU_CORES"
echo "测试时长: $DURATION 秒"
echo "========================================"

# 捕获Ctrl+C信号,确保stress-ng被终止
cleanup() {
    echo -e "\n收到中断信号,正在停止压力测试..."
    pkill -f stress-ng
    exit 0
}
trap cleanup SIGINT SIGTERM

# 启动stress-ng,使用所有CPU核心,指定时长
stress-ng --cpu $CPU_CORES --timeout ${DURATION}s --metrics-brief &

# 获取stress-ng的PID
STRESS_PID=$!

# 显示倒计时进度
SECONDS_LEFT=$DURATION
while [ $SECONDS_LEFT -gt 0 ]; do
    echo -ne "剩余时间: ${SECONDS_LEFT}s \r"
    sleep 1
    ((SECONDS_LEFT--))
done

# 等待stress-ng自然结束
wait $STRESS_PID

echo -e "\n========================================"
echo "CPU压力测试完成。"
echo "请检查CPU温度等散热相关指标。"
echo "========================================"

使用方法
保存脚本
将上述内容复制到一个文件中,例如 cpu_stress_test.sh。

赋予执行权限

bash
chmod +x cpu_stress_test.sh
运行脚本

不带参数运行,默认测试 60 秒:

bash
./cpu_stress_test.sh
指定测试时长(例如 300 秒):

bash
./cpu_stress_test.sh 300

收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则