Files
libvirt/tests
Roman Bogorodskiy ddf09630e5 bhyve: add blkiotune support
FreeBSD supports resource limiting with the rctl(4) framework.
It supports various resource types, including I/O resources.
It allows to limit resources for users, processes, login classes,
and jails.

To apply blkiotune limits set limits for the bhyve process.

I/O related resources supported by rctl(4) are:

  readbps            filesystem reads, in bytes per second
  writebps           filesystem writes, in bytes per second
  readiops           filesystem reads, in operations per second
  writeiops          filesystem writes, in operations per second

Thus, the actual commands look like:

rctl -a process:$bhyvepid:writebps:throttle=10000000
rctl -a process:$bhyvepid:readbps:throttle=10000000
rctl -a process:$bhyvepid:writeiops:throttle=20000
rctl -a process:$bhyvepid:readiops:throttle=20000

This is different from the current blkiotune modeling in libvirt as
it requires specific device to apply limits to. To adapt this model
to per-domain I/O limits, update domain schema to specify "*" as a
device name.

The rctl(8) may be not available or not enabled, so add a capability
check for that.

Per process rules get removed when the process disappears, so no special
clean up is necessary.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2026-04-17 19:46:32 +02:00
..
2023-04-06 12:48:22 +02:00
2023-12-14 17:10:22 +01:00
2024-03-12 17:37:51 +01:00
2024-03-12 17:37:51 +01:00
2026-02-17 13:14:58 +01:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2025-07-02 13:54:04 +02:00
2026-02-17 13:14:58 +01:00
2022-06-16 06:43:58 +02:00
…
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2023-04-06 12:48:22 +02:00
2022-06-16 06:43:58 +02:00
2025-07-02 13:54:04 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2024-03-14 15:17:48 +01:00
2023-03-13 13:29:07 +01:00
2025-07-02 13:54:04 +02:00
2025-11-20 15:09:10 +01:00
2022-06-16 06:43:58 +02:00