Linux 生产环境 提高cpu使用率

很多时候,在生产环境,客户为了逃避一些资源检测,当内存和CPU 低于某些限值的时候,会被收回,所以需要一些方法来提升CPU使用率。看脚本

	#!/bin/bash

	# 确保 CPU 使用率在 35% 到 70% 之间    根据实际情况修改
	target_min=35
	target_max=70

	# 计算 CPU 使用率的函数
	get_cpu_usage() {
		top -bn1 | grep "Cpu(s)" | awk '{print 100 - $8}'
	}

	# 定义计算密集型任务的 PID 变量
	cpu_task_pid=0

	# 循环直到达到目标 CPU 使用率
	while true; do
		cpu_usage=$(get_cpu_usage)


		# 如果 CPU 使用率低于目标下限,则启动计算密集型任务  
		if (( $(echo "$cpu_usage < $target_min" | bc -l) )); then
			# 如果之前已经有任务在运行,先杀死它  
			if [[ $cpu_task_pid -ne 0 ]]; then
				kill $cpu_task_pid
				wait $cpu_task_pid 2>/dev/null  # 等待进程结束,忽略错误  
				cpu_task_pid=0
			fi
			# 执行计算密集型任务  
			(while :; do echo "scale=1000; a(1)" | bc -l; done) &
			cpu_task_pid=$!
		fi



		# 如果 CPU 使用率高于目标上限,终止计算密集型任务
		if (( $(echo "$cpu_usage > $target_max" | bc -l) )) && [[ $cpu_task_pid -ne 0 ]]; then
			kill $cpu_task_pid
			cpu_task_pid=0
		fi

		# 等待一段时间再检查
		sleep 2
	done

在启动服务的时候可能会报一些错误。

这个错误通常是由于在Windows环境下编写的脚本在Unix或Linux环境下执行时出现的。Windows使用回车符(\r\n)作为行结束符,而Unix和Linux使用换行符(\n)。当你在Windows环境下编写脚本并在Unix或Linux环境下执行时,这些额外的回车符(\r)会被解释为命令的一部分,从而导致错误。

为了解决这个问题,你需要将脚本文件的行结束符从Windows格式转换为Unix格式。这可以通过多种方式实现:

sed -i 's/\r$//' your_script.sh

还有可能会出现一些反斜杠错误,只需要vim 脚本将其中不需要的反斜杠删除就行,当然别忘了chmod +x your_script.sh脚本权限

pkill -f _name.sh  可停止脚本运行,也有其他方法,大家可以gpt搜索

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值