首页 > 系统相关 >Linux中利用shell脚本提升cpu使用率

Linux中利用shell脚本提升cpu使用率

时间:2024-01-18 17:56:13浏览次数:24  
标签:shell iZuf63rpbv7l8ahkbslwi6Z 0.0 dd yycp Linux root cpu

使用背景:

  因新申请下来的服务器暂时没有部署任何应用导致cpu使用率很低, 那资源组那边给出两个方案, 1.要不把服务器用起来 2服务器进行降配

  降配是不可能降配的,后面正式用起来去升配就很麻烦了

使用说明:

  这个脚本主要是针对多核服务器进行使用,前提你想让你服务器的cpu使用率达到80%, 50%这样的

主要命令讲解:

  查询服务器的核数命令(当然我演示是用我的自己服务器是一核的,不要介意)

  cat /proc/cpuinfo |grep "processor" | wc -l

  当然有些文章会执行cat /proc/cpuinfo | grep "physical id" | wc -l  但我试了下查询不出来我的核数

[root@iZuf63rpbv7l8ahkbslwi6Z yycp]# cat /proc/cpuinfo |grep "processor" | wc -l
1
[root@iZuf63rpbv7l8ahkbslwi6Z yycp]# 

  删除进程

  pkill -9 dd

shell脚本:

#!/bin/bash
read -p "请输入一个数字(0:停止;8:CPU80%;10:CPU100%):" num
 
if [ $num -eq 8 ]; then
    pkill -9 dd
    #仅适用与多核
    for i in $(seq 1 $(cat /proc/cpuinfo |grep "processor" | wc -l | awk '{print $1-1}')); do
        dd if=/dev/zero of=/dev/null &
    done
elif [ $num -eq 10 ]; then
    pkill -9 dd
    for i in $(seq 1 $(cat /proc/cpuinfo |grep "processor" | wc -l)); do
        dd if=/dev/zero of=/dev/null &
    done
elif [ $num -eq 0 ]; then
    pkill -9 dd
else
    echo "无效的输入"
fi

执行脚本:

  

[root@iZuf63rpbv7l8ahkbslwi6Z yycp]# sh cpu.sh 
请输入一个数字(0:停止;8:CPU80%;10:CPU100%):

这里说下我演示服务器为一核,我的选项只有0停止和10升到100%, 因为我选8相当于减掉一核等于0核(意味着如果要达到50%可以修改

wk '{print $1-1}' 这里的参数 -1 -2 -3都行看你有几核或做除法

)

[root@iZuf63rpbv7l8ahkbslwi6Z yycp]# sh cpu.sh 
请输入一个数字(0:停止;8:CPU80%;10:CPU100%):10
[root@iZuf63rpbv7l8ahkbslwi6Z yycp]# top
top - 17:46:42 up 8 days, 32 min,  1 user,  load average: 0.37, 0.08, 0.03
Tasks: 235 total,   2 running, 231 sleeping,   2 stopped,   0 zombie
%Cpu(s): 34.7 us, 65.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1737.2 total,    465.5 free,    168.3 used,   1103.5 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1480.3 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                               
 974053 root      20   0  220380    792    720 R  99.7   0.0   0:11.25 dd             

执行top命令可以看到 %cpu达到了99.7,进程为dd

[root@iZuf63rpbv7l8ahkbslwi6Z yycp]# sh cpu.sh 
请输入一个数字(0:停止;8:CPU80%;10:CPU100%):0
[root@iZuf63rpbv7l8ahkbslwi6Z yycp]# top
top - 17:48:05 up 8 days, 33 min,  1 user,  load average: 4.85, 1.68, 0.60
Tasks: 238 total,   2 running, 233 sleeping,   3 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1737.2 total,    462.8 free,    170.9 used,   1103.5 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1477.7 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                               
      1 root      20   0  104080  10036   7160 S   0.0   0.6   2:09.15 systemd                                                                               
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.08 kthreadd                                                                              
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp    

再次执行选项0可以看到top中没有dd进程了(被杀掉了)

  

标签:shell,iZuf63rpbv7l8ahkbslwi6Z,0.0,dd,yycp,Linux,root,cpu
From: https://www.cnblogs.com/magepi/p/17973094

相关文章

  • Linux命令
    Port(Linux)#查看端口占用netstat-nlp|grep[端口号]Port(Windows)#查看指定端口的占用情况netstat-aon|findstr“端口号”#查看进程或者程序占用了相应的端口tasklist|findstr“被占用端口对应的PID”#结束端口占用的进程taskkill/t/f/pidpid号Jar#jar包后......
  • Xshell通过跳板机连接服务器
    一、GitSSH密钥生成1.打开命令行工具,输入以下命令:$ssh-keygen-trsa-C"[email protected]"其中,“-t”指定密钥类型,可以是“rsa”、“dsa”等;“-C”指定注释信息,一般为邮箱地址。2.生成密钥的存储路径:Whatisthefileinwhichtosavethekey?(/c/Users/you/.......
  • (7)Powershell算术运算符
    (7)Powershell算术运算符本系列博客从这一节开始是Powershell的语法知识,在开始学习语法之前,希望你对Powershell有个基本的了解,比如开发工具的使用,面向对象等特性,详细内容使劲戳这里(1)-(6)的内容。本节主要介绍Powershell中的算术运算符。Powershell支持以下算术运算符......
  • JMeter在linux安装及运行
        JMeter在linux服务器安装   1、在服务器/opt或者其他目录下,新建文件夹:mkdirJMeter;把JMeter的压缩包放入到该路径下,若复制失败,可能是因为JMeter文件夹缺少操作权限,添加权限:chmod-R777JMeter,再次复制;   2、执行命令:unzip  apache-jmeter-5.2.1.zip,或者......
  • Linux_SSH免密随笔
    一、介绍SSH为 SecureShell的缩写,它是建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。 SSH远程登录目标服务器有两种方式:①基于口令的安全认证:每次登录的时......
  • tcpdump抓包(linux)和丢包分析
    1、下载安装官网:https://www.tcpdump.org/index.html#latest-releases编译和安装[root@mysql01~]#tar-zxvftcpdump-4.99.4.tar.gz[root@mysql01~]#tar-zxvflibpcap-1.10.4.tar.gz[root@mysql01~]#cdlibpcap-1.10.4/[root@mysql01~/libpcap-1.10.4]#./configur......
  • linux下iptables学习
    iptables的结构iptables由上而下,由tables、chains、rules组成四表iptables有filter、nat、mangle、raw四种内置表Filter表filter是iptables的默认表,有一下三种内建链:INPUT链-处理来自外部的数据OUTPUT链-处理向外发送的数据FORWARD链-将数据转发到本机的其他网......
  • linux没有root权限修改环境变量怎么办
    Linux系统可以自己建立和管理环境变量文件,而且每个用户都可以在自己的主目录下创建一个bash环境变量文件,这个文件会在用户登录时自动执行。创建这个文件的命令是:```touch~/.bashrc```然后可以使用任意文本编辑器打开这个文件,添加需要的环境变量,例如:```exportMY_VAR="Hello......
  • Makefile 使用 shell 命令
    转发自https://www.cnblogs.com/phillee/p/15020046.html0.前言前面一节我们学习了make的基本使用规则以及变量定义赋值方法,可以写一些简单的实例。Makefile学习笔记之变量定义与赋值target...:prerequisites...command......在使用make进行开发的过程中,我们常......
  • [工程题] THUSC 2023 Day2 奋斗四小时,手搓 CPU
    https://www.luogu.com.cn/contest/110331https://www.luogu.com.cn/team/44709#problem可以在https://www.luogu.com.cn/problem/T335306下载manual.pdf,在https://www.luogu.com.cn/problem/T335313下载statement.pdf和simulator.cpp。组合逻辑电路部分此部分的要求详......