我正在尝试在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
自定义预取
有没有办法立即检查目录是否在使用?
在Windows中redirect所有文件IO
限制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] 举报,一经查实,本站将立刻删除。