b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

cpu运行时间的使用率上限值是什么样的?

电脑杂谈  发布时间:2021-04-12 22:02:28  来源:网络整理

这是双核情况。虽然这两个过程的价值并不相同,但它们每个都陷入了两个核心。

这是单核的情况:CPU占用率与不错的比例相对应。

这里写图片描述

正常运行的进程(nice值0)获得更多的cpu运行时间,相反,使用nice命令运行的进程将占用更少的cpu时间(nice值1 0))。

在实际使用中,如果要运行CPU密集型程序,最好使用nice命令启动它,以便可以确保其他进程获得更高的优先级。换句话说,即使您的服务器或台式机负载很重,您也可以快速做出响应。

nice还具有一个称为renice的关联命令,该命令可以在运行时调整进程的精确值。使用renice命令时,首先找出该进程的PID。这是一个示例:

renice +10 1234

其中,1234是进程的PID。

在测试好命令和renice命令之后,切记要杀死所有数学素过程。

cpulimit命令

cpulimit命令的工作原理是为该进程预设一个cpu占用阈值,并实时监视该进程是否超过该阈值,如果超过该阈值,则该进程将被暂停一段时间。 cpulimit使用两个信号SIGSTOP和SIGCONT来控制该过程。它不会修改进程的精确值,而是通过监视进程的cpu占用率进行动态调整。

cpulimit的优点是它可以控制进程的cpu使用率的上限。但是与nice相比,有一个缺点,就是即使cpu处于空闲状态,该进程也无法完全使用整个cpu资源。

在CentOS上,您可以使用以下方法来安装cpulimit:

cpu占用率_cpu占用过高怎么办_spoolsvexe占用cpu过高

wget -O cpulimit.zip https://github.com/opsengine/cpulimit/archive/master.zip
unzip cpulimit.zip
cd cpulimit-master
make
cp src/cpulimit /usr/bin

cpulimit的用法类似于nice命令,但是用户需要使用-l选项来显式定义进程的cpu用法的上限。例如:

cpulimit -l 50 matho-primes 0 9999999999 >/dev/null &

这里写图片描述

从上面的示例中可以看出,mathe-primes仅使用50%的cpu资源,而剩余的cpu时间是空闲的。

cpulimit还可以在运行时动态限制进程。使用-p选项指定进程的PID。下面是一个示例,其中1234是进程的PID。 :

cpulimit -l 50 -p 1234

cgroups命令集

检查是否已安装:

rpm -qa libcgroup
libcgroup-0.40.rc1-18.el6_8.x86_64

如果未安装,请使用centos安装方法:

yum -y install libcgroup

开始:

/etc/init.d/cgconfig start
Starting cgconfig service:                                 [确定]
/etc/init.d/cgconfig status
Running

cgroups是Linux内核提供的一种机制,可用于指定一组进程的资源分配。具体来说,使用cgroup,用户可以为一组进程限制cpu占用率,系统内存消耗,网络带宽以及这些资源的组合。

与nice和cpulimit相比,cgroups的优势在于它可以控制一组进程,而前者只能控制一个进程。同时,nice和cpulimit只能限制cpu的使用,而cgroups可以限制其他进程资源的使用。

充分利用cgroup来控制整个子系统的资源消耗。以CoreOS为例。这是专为服务器部署而设计的最简化的Linux发行版。其升级过程由cgroups控制。这样,当系统下载并安装升级版本时,系统的性能将不会受到影响。

为进行下面的演示,我们将创建两个控制组(cgroup)并为其分配不同的cpu资源。这两个对照组分别命名为“ cpulimited”和“ lesscpulimited”。

使用cgcreate命令创建一个控制组,如下所示:

sudo cgcreate -g cpu:/cpulimited
sudo cgcreate -g cpu:/lesscpulimited

“-g cpu”选项用于设置cpu使用量的上限。除了cpu外,cgroups还提供cpuset,内存,blkio和其他控制器。 cpuset控制器与cpu控制器的区别在于,cpu控制器只能限制一个cpu内核的利用率,而cpuset可以控制多个cpu内核。

cpu控制器中的cpu.shares属性用于控制cpu的使用率。它的默认值为1024。我们将lesscpulimited控制组的cpu.shares设置为1024(默认值),将cpulimited设置为512。配置后,内核将以2:1的比例为两个控制组分配资源。

要将cpulimited组的cpu.shares设置为512,请输入以下命令:

sudo cgset -r cpu.shares=512 cpulimited

使用cgexec命令启动控制组的操作。为了测试这两个对照组,我们首先使用cpulimited对照组启动数学素数过程。命令行如下:

sudo cgexec -g cpu:cpulimited /usr/local/bin/matho-primes 0 9999999999 > /dev/null &

打开htop,您会看到math-primes进程占用了所有CPU资源。

这里写图片描述

因为系统中仅运行一个进程,所以无论在哪个控制组中启动它,都将使用尽可能多的cpu资源。仅当两个进程争用cpu资源时,cpu资源限制才生效。

所以,现在我们开始第二个数学素数处理,这次是在lesscpulimited控制组中开始:

sudo cgexec -g cpu:lesscpulimited /usr/local/bin/matho-primes 0 9999999999 > /dev/null &

再次打开顶部,您会看到cpu.shares值较大的对照组将获得更多的cpu运行时间。

这里写图片描述

现在,让我们向cpulimited控制组添加一个数学素数处理:

sudo cgexec -g cpu:cpulimited /usr/local/bin/matho-primes 0 9999999999 > /dev/null &

这里写图片描述

可以看出,两个控制组的CPU占用率仍为2:1。其中,cpulimited控制组中的两个math-primes进程获得相同的cpu时间,而另一组中的matho-primes进程显然获得了更长的运行时间。

摘要

好的,cpulimit和cgroups可以帮助管理系统资源,尤其是cpu资源:

这里写图片描述


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-367787-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 祁刚龙
        祁刚龙

        应该说爱卿所言甚是

      热点图片
      拼命载入中...