问题分析:一时提高CPU占用,,,,,预防云平台或系统回收闲置资源
处置法子:使用stress工具来提高CPU占用
1.装置stress
yum install -y stress
或者离线装置 rpm -ivh stress-1.0.4-21.ky10.aarch64.rpm
2.查看你的 CPU 主题数
nproc
如果输出为 8(即 8 核 CPU)
3.推算并启动过程
#若是想让整体 CPU 达到 50%:启动主题数一半的过程。。。。。。8核就启动 4个过程:
nohup stress -c 4 > /dev/null 2>&1 &
4.若何安全终场
pkill -9 stress
成效如下:
若是想要动态节造让成效然实一点,,,,,使用shell脚正本节造cpu占用
1.创建动态节造剧本
#!/bin/bash TARGET_LOW=30 # 指标下限:低于此值增长负载 TARGET_HIGH=70 # 指标上限:高于此值削减负载 CHECK_INTERVAL=3 # 每3秒检测一次 # 获取当前系统整体 CPU 使用率(支持多核) get_cpu_usage() { read cpu user nice system idle iowait irq softirq steal guest guest_nice < /proc/stat sleep 1 read cpu user2 nice2 system2 idle2 iowait2 irq2 softirq2 steal2 guest2 guest_nice2 < /proc/stat # 推算各项差值 Idle=$((idle2 - idle + iowait2 - iowait)) Total=$((user2 - user + nice2 - nice + system2 - system + idle2 - idle + iowait2 - iowait + irq2 - irq + softirq2 - softirq + steal2 - steal)) if [ $Total -eq 0 ]; then echo 0; return; fi echo $(( (Total - Idle) * 100 / Total )) } # 获取当前在运行的 stress 过程数 get_stress_count() { pgrep -x stress | wc -l } # 主循环:动态监控与调节 while true; do current_usage=$(get_cpu_usage) stress_count=$(get_stress_count) # 若是 CPU 低于下限,,,,,且当前 stress 过程少于 8 个,,,,,则增长 1 个主题负载 if [ "$current_usage" -lt "$TARGET_LOW" ] && [ "$stress_count" -lt 8 ]; then stress -c 1 > /dev/null 2>&1 & echo "[$(date '+%H:%M:%S')] CPU: ${current_usage}% | 运前过程: $((stress_count+1))/8 -> 增长负载" # 若是 CPU 高于上限,,,,,且存在 stress 过程,,,,,则杀掉 1 个 stress 过程 elif [ "$current_usage" -gt "$TARGET_HIGH" ] && [ "$stress_count" -gt 0 ]; then # 获取最早启动的一个 stress 过程的 PID 并杀掉 kill -9 $(pgrep -x stress | head -n 1) > /dev/null 2>&1 echo "[$(date '+%H:%M:%S')] CPU: ${current_usage}% | 运前过程: $((stress_count-1))/8 -> 开释负载" fi sleep $CHECK_INTERVAL done
2. 赋予权限并后盾运行
chmod +x dynamic_stress.sh nohup ./dynamic_stress.sh > stress.log 2>&1 &
3.若何安全终场
pkill -9 -f dynamic_stress.sh pkill -9 stress
若是想维持服务器沉启后还能持续运行,,,,,那么思考使用 systemd 托管
1. 创建服务文件:
sudo vi /etc/systemd/system/dynamic-stress.service
2. 写入以下内容(把稳批改剧本的现实蹊径):
[Unit]
Description=Dynamic CPU Stress Test
After=network.target
[Service]
ExecStart=/bin/bash /你的剧本蹊径/dynamic_stress.sh
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
3. 启动并设置开机自启:
ystemctl daemon-reload
sudo systemctl start dynamic-stress
sudo systemctl enable dynamic-stress