Please enable JavaScript.
Coggle requires JavaScript to display documents.
UBLK: bad perf when running out of cache - Coggle Diagram
UBLK: bad perf when running out of cache
observation
8GB
ublk performs much better than qemu-nbd
default 1MB l2 cache
16GB
ublk performs worse than qemu-nbd
qemu-nbd
cpu utilization
90%
not observed extra meta loading
nbd io perf is same with backend io
fallocate latency
ublk
cpu utilization
160%
dropped to 60% after decreasing max io wq workers
extra meta loading is observed
backend io is much higher
where is there meta loading
running randwrite on empty image
fallocate_latency
reduced a lot after decreasing bound io_wq workers to 1
64GB
perf is not good as qemu-nbd
after decreasing max io wq workers
one possible reason
is it from extra meta loading?
it has to be
possible reasons
extra zeroing?
looks fallocate() performs worse
extra fsync?
will qemu-nbd increase cache size?
trace qemu code
yes
gdb trace