微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在systemd中使用CPUQuota

我正在尝试在dd命令中使用cpu使用的硬限制。 我创build了以下单元文件

[Unit] Description=Virtual distributed Ethernet [Service] ExecStart=/usr/bin/ddcommand cpuQuota=10% [Install] WantedBy=multi-user.target

其中调用以下简单的脚本

#!/bin/sh dd if=/dev/zero of=/dev/null bs=1024k

正如我在本指南中看到的: http ://www.freedesktop.org/software/systemd/man/systemd.resource-control.html我的dd服务的cpu使用率不应超过10%。 但是当我运行system-cgtop命令时,使用率大约是70-75%。

任何想法,我做错了什么,我该如何解决

在什么情况下我应该selectio.h到windows.h?

C ++可执行文件,sh 1:未find

Java安装程序。 如何设置Windows系统path?

Linux中的文件访问计数

如何在调用系统后启用ctrl-c / ctrl + break?

PS当我执行systemctl show dd我得到以下结果关于cpu

cpuShares=18446744073709551615 StartupcpuShares=18446744073709551615 cpuQuotaPerSecUSec=100ms Limitcpu=18446744073709551615

systemd – 如何列出所有被屏蔽的单位

自定义预取

有没有办法立即检查目录是否在使用?

在Windows中redirect所有文件IO

testing是否使用PHP安装了一个程序

限制cpu使用的其他方法:1.使用taskset命令。 2.使用控制组。 3.使用docker并使用cpuset来限制cpu使用率。 4.减少应用程序中的线程数量。 这种方法需要进行一些计算。

你可以尝试的另一件事是运行cpulimit作为守护进程。 我没有测试过这个; 这只是一个想法。

这是在Ubuntu的回购:

sudo apt install cpulimit

如果你喜欢,可以使用systemd。 这应该限制所有 dd的实例为20%的cpu

[Unit] Description=dd cpu Limiter [Service] ExecStart=/usr/bin/cpulimit -e dd -l 20 [Install] WantedBy=multi-user.target

资源

意味着“cpuAccounting =真”所以它应该是

[Service] ExecStart=/usr/bin/ddcommand cpuAccounting=true cpuQuota=10%

选项“ cpuQuota = ”取决于系统上的cpu数量,因为它确保执行的进程在一个cpu上永远不会超过%cpu时间; 而且我认为使用cmd系统获得的cpu使用率d -cgtop在系统的所有cpu上。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐