Linux限制用户CPU使用率

Linux限制用户CPU使用率,第1张

用户 lmeng 的python程序,限制运行在0-4号CPU核上:

或使用cpulimit,参考教程: CPULimit 限制 Linux 程式 CPU 使用率教学 - G. T. Wang (gtwang.org)

例如,将PID限制使用率为1000%(每个核提供100%): cpulimit -p PID -l 1000

或利用循环,限制多个进程

如果想取消cpulimit的话:

占用CPU过高则让其他用户无法忍受,而其很有可能是用户程序有问题,这个时候系统应该自动阻止这样的进程继续消耗系统资源。 最简单的方法就是通过ps发现CPU占用率超过某个限制的用户进程,然后将该进程杀死,这种做法很暴力,而且用户发现他的进程被杀以后很可能又启动进程,这样恶性循环。 有一种折中的方法,不是将目标进程杀死,而是适当调整其nice值,具体见如下shell程序: renice +10 `ps aux | awk '{ if ($3 >0.8 &&id -u $1 >500) print $2}'` (责任编辑:云子)

下面的shell脚本可以实时的监控系统中各个进程的CPU和内存的占用情况,用于限制进程CPU占用 率更加合理。

#!/bin/sh

PIDS=`top -bn 1 | grep "^ *[1-9]" | awk ’{ if($9 > 50 || $10 > 25 && id -u $2 > 500) print $1}’`

for PID in $PIDS

do

        renice +10 $PID

        echo "renice +10 $PID"

done

能够将这个脚本放到cron中运行,比如每分钟检查一次,只需以root身份添加crontab项:

#crontab -e

* * * * * limit.sh

    以后每个一分钟就会检查一次,调整占用50%以上CPU或25%内存的进程的nice值,从而使这样的进程优先级变低,被调度的机会减少,同时会向root发邮件提示该进程被调整过。

    但是,限制内存使用最好还是用PAM,RedHat能够在/etc/security/limits.conf中配置。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8947573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存