非凡国际

模板中心 | 模板技术中心 | 技术中心 | 无阻碍阅读| 长者副手| 售前:4008-300-618
目录
目录X
联系信息 首页 /正文内容

linux下有意提高CPU占用

AI提要(BLUF)
为预防云平台或系统回收闲置资源,,,,,可通过一时提高CPU占用实现。。。。。。使用stress工具可急剧增长CPU负载,,,,,装置后凭据CPU主题数启动相应数量的过程,,,,,例如8核CPU启动4个过程可使整体CPU达到50%。。。。。。为实现动态节造,,,,,可编写Shell剧本实时监控CPU使用率,,,,,并凭据预设高低限自动调节负载,,,,,预防CPU过高或过低,,,,,确保资源占用不变在指标领域,,,,,从而有效预防系统误判资源闲置。。。。。。

问题分析:一时提高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


【打印正文】 颁布功夫:2026-07-22 14:54:56 浏览次数: 作者: 起源:本站原创
【网站地图】【sitemap】