On 2022/1/13 4:13 上午, Tejun Heo wrote: > On Mon, Jan 10, 2022 at 05:10:46PM +0800, Wang Jianchao wrote: >> From: Wang Jianchao <wangjianchao@xxxxxxxxxxxx> >> >> iostat can only track the whole device's io statistics. This patch >> introduces iostat per cgroup based on blk-rq-qos framework which >> can track bw, iops, queue latency and device latency and distinguish >> regular or meta data. The blkio.iostat per cgroup output in following >> format, >> vda-data bytes iops queue_lat dev_lat [ditto] [ditto] >> meta \___________ ______________/ | | >> v v v >> read write discard >> In particular, the blkio.iostat of root only output the statistics >> of IOs from root cgroup. However, the non-root blkio.iostat outputs >> all of the children cgroups. With meta stats in root cgroup, hope >> to observe the performace of fs metadata. > > I think using bpf is a way better solution for this kind of detailed > statistics. bw/iops/lat of data or metadata of one cgroup is very basic statistics which kernel could provide especially when cgroup is employed everywhere. And we love to collect them all the time during the instance in cgroup is running. > What if I want to know what portions are random, or the > distribution of IO sizes? This looks really detailed statistics :) > Do I add another rq-qos policy or add another > interface file with interface versioning? This iostat module can not provide all the kinds of statistics we want but just some very basic things. And maybe it can provide better hooks to install the ebpf program to collect detailed statistics. Best regards Jianchao