我想动态地为某些块设备的写入带宽设置系统范围的限制。
这些设备是可插拔的,并由我们自己的服务管理。目前,该服务通过写入/sys/fs/cgroup/system.slice/io.max
and来设置/删除限制/sys/fs/cgroup/user.slice/io.max
(machines.slice
我们的机器上通常不存在,但最好也涵盖它)。但我知道这些文件是由 systemd 管理的,我们的服务不应该直接写入它们,而应该使用一些 API 来告诉 systemd 这样做。
然而,我发现没有办法用 systemd 来做到这一点,这似乎是一个非常不常见的用例。
设置限制的背景是某些型号的设备没有实施适当的热管理,需要限制来防止它们过热。其他型号不需要此限制,应充分利用其性能。