HI,
I have a proxmox host with a KVM machine running docker, the disk being on ZFS (raw) and it works great.
I've been trying to run frigate and unfortunately it seems like passing a coral device through to a VM doesn't work very well, so I've created an LXC container on the same storage (but it seems to use a subvolume instead), privileged with a mount on the usb device I need, and installed docker in there. It also has nested cap enabled.
It works mostly fine except the disk performance is terrible, even a simple docker pulls freezes a lot and takes forever to complete. Interestingly it starts off great, but starts freezing after ~10 or ~15 seconds, wondering if there's some caching going on at the start maybe.
I can see the dockerd process is stuck on I/O in htop (D status).
Here's an fio on the LXC (subvolume) :
Now here's the exact same fio test within the VM, which is on the same storage (raw) :
As you can see the difference is huge, even though it's the same NVMe disk in both cases.
I've tried setting sync=none on the subvolume, and I've also tried setting checksum=none on it but in both cases no change.
Any idea of what else could be causing this bottleneck ?
The server isn't doing anything else, there's free RAM both in the LXC and outside it and the cpu rarely goes above 2%.
The KVM has `cache=none` set, in case that matters.
Thanks
I have a proxmox host with a KVM machine running docker, the disk being on ZFS (raw) and it works great.
I've been trying to run frigate and unfortunately it seems like passing a coral device through to a VM doesn't work very well, so I've created an LXC container on the same storage (but it seems to use a subvolume instead), privileged with a mount on the usb device I need, and installed docker in there. It also has nested cap enabled.
It works mostly fine except the disk performance is terrible, even a simple docker pulls freezes a lot and takes forever to complete. Interestingly it starts off great, but starts freezing after ~10 or ~15 seconds, wondering if there's some caching going on at the start maybe.
I can see the dockerd process is stuck on I/O in htop (D status).
Here's an fio on the LXC (subvolume) :
Code:
Run status group 0 (all jobs):
READ: bw=877KiB/s (898kB/s), 209KiB/s-238KiB/s (214kB/s-244kB/s), io=56.8MiB (59.5MB), run=66251-66252msec
WRITE: bw=607KiB/s (621kB/s), 143KiB/s-162KiB/s (147kB/s-166kB/s), io=39.2MiB (41.2MB), run=66251-66252msec
Now here's the exact same fio test within the VM, which is on the same storage (raw) :
Code:
READ: bw=24.8MiB/s (26.0MB/s), 6339KiB/s-6354KiB/s (6492kB/s-6507kB/s), io=2455MiB (2574MB), run=98978-98979msec
WRITE: bw=16.6MiB/s (17.4MB/s), 4240KiB/s-4255KiB/s (4341kB/s-4357kB/s), io=1641MiB (1721MB), run=98978-98979msec
As you can see the difference is huge, even though it's the same NVMe disk in both cases.
I've tried setting sync=none on the subvolume, and I've also tried setting checksum=none on it but in both cases no change.
Any idea of what else could be causing this bottleneck ?
The server isn't doing anything else, there's free RAM both in the LXC and outside it and the cpu rarely goes above 2%.
The KVM has `cache=none` set, in case that matters.
Thanks