标签: systemd-run

如何使用 systemd-run 限制 CPU 使用

我有一个有缺陷的程序,即使在空闲时也使用 100% CPU。由于目前修复它并不实际,我想将其限制为能够使用不超过 10% 的 CPU。然而,无论我做什么,该进程总是会 100% 占用一个 CPU。

我在Arch Wiki上找到了说明,告诉我创建一个包含以下内容的文件:

# cpulimit.slice
[Slice]
CPUQuota=10%
Run Code Online (Sandbox Code Playgroud)

显然我可以使用这些限制启动 shell,如下所示:

systemd-run --slice=cpulimit.slice --uid=myuser --shell
Run Code Online (Sandbox Code Playgroud)

这似乎有效,输入 sudo 密码后,我得到一个 shell,因此我运行一个简单的测试,该测试将使用 100% CPU,我可以使用 Ctrl+C 停止:

while true; do true; done
Run Code Online (Sandbox Code Playgroud)

我预计它使用的 CPU 不会超过 10%,因为它在切片内运行,但它始终使用 100% CPU!

我究竟做错了什么?

systemd cgroups cpulimit systemd-run

5
推荐指数
1
解决办法
3219
查看次数

“?”是什么意思?在 ls -l 输出中是什么意思?

我看到一些文件/目录即使是 root 用户也无法访问:

find: ‘/run/user/1000/gvfs’: Permission denied.

所以我更深入地跑了ls -l;下面是输出。

/run/user/125# ll
ls: cannot access 'gvfs': Permission denied
total 4
drwx------ 12 gdm  gdm  340 Sep  3 10:20 ./
drwxr-xr-x  4 root root  80 Sep  3 10:19 ../
srw-rw-rw-  1 gdm  gdm    0 Sep  3 10:19 bus=
drwx------  3 gdm  gdm   60 Sep  3 10:19 dbus-1/
drwx------  2 gdm  gdm   60 Sep  3 10:19 dconf/
drwx--x--x  2 gdm  gdm   60 Sep  3 10:19 gdm/
prw-rw-r--  1 gdm  gdm …
Run Code Online (Sandbox Code Playgroud)

linux ls filesystems systemd-run

4
推荐指数
1
解决办法
400
查看次数

/dev、/run 和 /sys 是否存在于 HDD 上(如果存在的话,如果可以有意义地追踪的话,其位置在哪里)?

在安装 Linux 时,我只提到了一个文件系统(/dev/sda1 -> ext4 -> / )。但是对于 dev、run、proc、sys - Linux 正在创建额外的 FS,这可以从mount.

$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,noexec,relatime,size=12138104k,nr_inodes=3034526,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=2433824k,mode=755)
/dev/sda4 on / type ext4 (rw,relatime,errors=remount-ro)
...
Run Code Online (Sandbox Code Playgroud)

我知道 /proc 是一个虚拟文件系统,位于内存中,而不是在任何 HDD/SSD 上。有人可以解释一下 /dev、/run 和 /sys 的情况吗?它们是否存在于硬盘上(如果存在的话,如果可以有意义地追踪的话,其位置在哪里)。

基于已经问过的问题 -为什么 /dev 和 /run 的 inode 编号与 / 的 inode 编号相同?

filesystems ext4 mount proc systemd-run

0
推荐指数
1
解决办法
168
查看次数

标签 统计

systemd-run ×3

filesystems ×2

cgroups ×1

cpulimit ×1

ext4 ×1

linux ×1

ls ×1

mount ×1

proc ×1

systemd ×1