Files
ubicloud/scheduling
Hadi Moshayedi 2790c5b95e Add IO rate limiting
This change enables setting limits on total IOPS, read bandwidth, and
write bandwidth for each `VmStorageVolume`. These limits can be
specified in `Nexus::assemble`:

```
Prog::Vm::Nexus.assemble(
  ...
  storage_volumes: [{
      size_gib: 40,
      encrypted: true,
      max_read_mbytes_per_sec: 200,
      max_write_mbytes_per_sec: 150,
      max_ios_per_sec: 25600
    }],
  ...)
```

The implementation uses SPDK's `bdev_set_qos_limit` RPC call during
volume setup on the Rhizome side.

This feature prepares for future support of burstable instances with
limited IO capacity and allows proportional IO allocation based on VM
size. These additional allocation strategies will be addressed in
upcoming PRs.
2024-11-20 13:26:27 -08:00
..
2024-11-20 13:26:27 -08:00