linux限制cpu使用率

 admin   2022-07-22 14:05   190 人阅读  0 条评论

cpulimit 就是一款可以对 CPU 使用率进行控制的软件。如何使用 cpulimit 防止老司机在 ECS 上翻车。很多朋友如果只是购买的单核心实例,如果跑的 MYSQL 过载了或者遭遇一些逻辑缺陷的软件造成 CPU 过载和服务器假死,导致网站打不开或者 502 错误啥的。所以我们可以借助一些软件来限制 CPU 的使用率和 IO。还有千万不要用跑分软件跑分,不然准翻车

安装:

yum -y install cpulimit

命令用法

图片.png

#限制firefox使用30% cpu 利用率 
[root@instance-iq88yiwv ~]# cpulimit -e firefox -l 30

#限制进程号1313的程序使用30% cpu 利用率
[root@instance-iq88yiwv ~]# cpulimit -p 1313 -l 30

#限制绝对路径下该软件的 cpu 利用率
[root@instance-iq88yiwv ~]# cpulimit -e usr/local/nginx/sbin/nginx -l 50

注意:

  • 一定要放到后台执行,否则执行之后不能关闭页面。

  • -l后面限制的cpu使用量,要根据实际的核心数量而成倍减少。40%的限制生效在1核服务器中,如果是双核服务器,则应该限制到20%,四核服务器限制到10%以此类推。

  • root用户可以限制所有的进程,普通用户只能限制自己有权限管理的进程。

    脚本

    默认情况下 cpulimit 只能对已经存在的进程进行限制,但是设置此脚本为随机自启动即可(设置方法参看上面的脚本链接中),它会对所有进程(包括新建进程)进行监控并限制(3秒检测一次,CPU限制为75%)

    # 这就可以防止因为 CPU 使用率过高而被 suspend 了!
    #!/bin/bash  
    while true ; do
     id=`ps -ef | grep cpulimit | grep -v "grep" | awk '{print $10}' | tail -1`
     nid=`ps aux | awk '{ if ( $3 > 75 ) print $2 }' | head -1`
     if [ "${nid}" != "" ] && [ "${nid}" != "${id}" ] ; then
       cpulimit -p ${nid} -l 75 &
       echo "[`date`] CpuLimiter run for ${nid} `ps -ef | grep ${nid} | awk '{print $8}' | head -1`" >> /root/cpulimit-log.log
     fi
     sleep 3
    done

    设置开机启动,将脚本放进rc.local中

    本文地址:https://liuchunjie.top/?id=425
    版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

     发表评论


    表情

    还没有留言,还不快点抢沙发?