通过脚本提高linux服务器cpu占用率

通过脚本提高linux服务器cpu占用

1、创建脚本
cpu-up.sh

#!/bin/bash
base_dir=$(
  cd $(dirname $0)
  pwd
)

# 从命令行参数中读取目标CPU使用率
if [ $# -eq 0 ]; then
  echo "Usage: $0 <target_cpu_usage>"
  exit 1
fi
# $1接收第一个参数
TARGET_CPU_USAGE=$1

# 无限循环进行浮点数计算
function cpu_load {
  # 定义CPU占用率的上限(以百分比表示)
  max_cpu_usage=5

  # 根据CPU核数调整循环次数,以达到目标CPU占用率
  # 例如,对于单核CPU,每秒执行20次循环大约占用5%的CPU,根据实际情况调整
  # 对于多核CPU,循环次数需要相应增加
  loops_per_second=$(($(nproc) * max_cpu_usage * 200))

  # 主循环
  while true; do
    for ((i = 0; i < loops_per_second; i++)); do
      # 执行一些基本的计算操作,例如递增计数器
      j=$((j + 1))
    done

    # 休眠一小段时间,以减少CPU占用
    sleep 0.05
  done
}

# 主循环
while true; do
  # 获取当前CPU使用率
  current_usage=$(top -b -n 3 | grep '%Cpu' | awk '{print $2}' | tail -1)
  # 转换为数字并检查有效性
  if [[ "$current_usage" =~ ^[0-9]+([.][0-9]+)?$ ]]; then
    if (($(echo "$current_usage < $TARGET_CPU_USAGE" | bc -l))); then
      # 如果CPU使用率低于目标值,增加计算负载
      cpu_load &
    elif (($(echo "$current_usage > $TARGET_CPU_USAGE" | bc -l))); then
      # 如果CPU使用率高于目标值,减少计算负载
      pkill -f 'cpu_load'
    fi
  else
    echo "Error: Invalid CPU usage value '$current_usage'."
  fi

  sleep 1
done

2、创建systemd 服务文件
如果你在Linux服务器上运行脚本,并且希望它作为服务在系统启动时自动启动,你可以创建一个 systemd 服务文件
创建一个 .service 文件,通常位于 /etc/systemd/system/ 目录下

sudo nano /etc/systemd/system/up_up_up.service

或者通过命令将service文件链接到/etc/systemd/system下

sudo ln -s /path/to/cpu-up.service /etc/systemd/system/cpu-up.service

cpu-up.service

[Unit]
Description=CPU UP Service
After=network.target

[Service]
# 替换成你的用户
User=root
# 替换成你的用户组
Group=root
Type=simple
Environment="TERM=xterm"
#ExecStart 配置你自己的脚本文件路径 53 设定你自己的期望达到的占用率
ExecStart=/home/cpu-up/cpu-up.sh 53
Restart=on-failure

[Install]
WantedBy=multi-user.target

3、启动脚本服务

# 确认脚本具有可执行权限。
# 查看文件权限
ls -l /home/myuser/cpu-up.sh
# 使用 chmod 命令给脚本添加执行权限
chmod +x /home/cpu-up/cpu-up.sh
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 重启服务
sudo systemctl restart cpu-up.service
# 检查服务状态
sudo systemctl status cpu-up.service
# 停止服务
sudo systemctl status cpu-up.service
# 查看系统资源使用情况
top
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值