linux cpu限制(Linux设置CPU的最大使用率)

大家好,如果您还对linux cpu限制不太了解,没有关系,今天就由本站为大家分享linux cpu限制的知识,包括Linux设置CPU的最大使用率的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

怎么限制linux服务器用户cpu和mem的使用率

使用ulimit工具来限制,安装ulimit,然后下面是它的用法:

ulimit命令的参数有

-a显示当前所有的资源限制.

-c size:设置core文件的最大值.单位:blocks

-d size:设置数据段的最大值.单位:kbytes

-f size:设置创建文件的最大值.单位:blocks

-l size:设置在内存中锁定进程的最大值.单位:kbytes

-m size:设置可以使用的常驻内存的最大值.单位:kbytes

-n size:设置内核可以同时打开的文件描述符的最大值.单位:n

-p size:设置管道缓冲区的最大值.单位:kbytes

-s size:设置堆栈的最大值.单位:kbytes

-t size:设置CPU使用时间的最大上限.单位:seconds

-v size:设置虚拟内存的最大值.单位:kbytes

编辑/etc/security/limits.conf文件,基于特定的组或用户进行限制,例如:

* soft core 0

* hard rss 10000

@student hard nproc 20

domain以@符号+用户名或者组名对特定的用户或者组做限制,*表示所有用户;type字段可以设置为hard也可以设置为soft;item字段指想限制的资源,如cpu,core等;value字段是相应项目的值。

如何在 CentOS / RHEL 中启用/禁用 CPU(限制 CPU 数量)

|在具有多处理器的系统上禁用/启用处理器(动态)的过程是什么?如何将服务器限制为仅“N”个 CPU?在 CentOS/RHEL中有三种方法可以限制 CPU的数量。|

在具有多处理器的系统上禁用/启用处理器(动态)的过程是什么?如何将服务器限制为仅“N”个 CPU?

在 CentOS/RHEL中有三种方法可以限制 CPU的数量:

使用 maxcpus参数(RHEL/CentOS 6)

使用 nr_cpus参数(RHEL/CentOS 6,7)

在线禁用 CPU(RHEL/CentOS 6,7)

1.使用maxcpus参数

此方法适用于 RHEL/CentOS 6系统。如果在 RHEL/CentOS 7系统中使用它可能会失败。尽管在较新版本的 RHEL 7系统中,此错误已得到修复。

您可以在/boot/grub/grub.conf中添加内核参数maxcpus=N或在引导时添加到内核行。例如,要限制服务器仅使用 2个 CPU,你可以使用以下方法:

注意:不能在 Red Hat Enterprise Linux系统上禁用 CPU。

当使用 maxcpus时,它将从所有可用的物理 CPU中获取 CPU。例如,在具有两个双核 CPU的系统上,maxcpus=2将从每个物理 CPU中获取一个 CPU。要了解正在使用的物理 CPU ID,可以使用下面的查询:

使用nr_cpus参数

对于 CentOS/RHEL 6,在/boot/grub/grub.conf或引导时的内核行中添加内核参数nr_cpus=N。例如,下面的条目会将服务器限制为只有 2个 CPU。

对于 CentOS/RHEL 7:

(1)对于 RHEL 7系统,将nr_cpus=N参数添加到“/etc/sysconfig/grub”中的“

GRUB_CMDLINE_LINUX”行,如下所示。

(2)使用grub2-mkconfig命令重新生成/boot/grub2/grub.cfg文件。

(3)验证grub配置文件中nr_cpu参数的入口。

禁用CPU在线

禁用 CPU内核:

(1)在运行时,可以使用以下命令禁用 cpu内核。例如对于 4核系统,我们可以禁用 3个 CPU

如下所示:

(2)要验证您是否禁用了 3个核心并且只启用了 1个核心,请使用以下命令:

重新启用 CPU内核:

(1)可以通过以下命令重新激活 CPU内核:

(2)再次验证/proc/cpuinfo中的 4个启用核心的核心。

如何在 CentOS/ RHEL中启用/禁用 CPU(限制 CPU数量)|《Linux就该这么学》(linuxprobe.com)

linux中限制CPU和内存占用率方法

查看cpu占用

在命令行中输入“top”

即可启动 top

top的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。

使用top查看系统负荷

top命令可以动态监视系统负荷,包括CPU、内存的使用率和占用资源较多的进程详情等。

动态查看系统负荷(占用一个终端)

top

显示后退出

top-n 1

以文本方式输出,以备其它程序使用

top-b

好了,我们现在来看限制CPU和内存占用率方法

脚本内容:

                代码如下   

   #!/bin/sh

   UPID=`top-bn 1| grep"^*[1-9]"| awk'{ if($9 20||$10 25 id-u$2 500) print$1}'`

   for PID in$UPID

   do

   renice+10$PID

   echo"renice+10$PID"

   done

我对上面的脚本进行了修改,可以让其针对整个服务器的进程进行限制.

修改后的脚本:

                代码如下   

   #!/bin/sh

   UPID=`top-bn 1| grep"^*[1-9]"| awk'{ if($9 50||$10 25) print$1}'`

   for PID in$UPID

   do

   renice+10$PID

   echo"renice+10$PID"

   done

可以将这个脚本放到cron中运行,让其每分钟检查一次:

                代码如下   chmod+x limit.sh

vi/etc/crontab

*/1****/bin/sh/root/soft_shell/limit.sh           

ps:

n:更新的次数,完成后将会退出 top

b:批次档模式,搭配“n”参数一起使用,可以用来将 top的结果输出到档案内

那么top-bn 1就是获取一次,top的输出结果。

grep"^*[1-9]":是为了直接获取PID号,排除掉表头等信息。

awk'{ if($9 20||$10 25 id-u$2 500) print$1}':

取得cpu使用率大于20%或者内存使用率大于25%,且用户uid大于500的进程pid。

阅读剩余
THE END