Hello, On Thu, Jan 13, 2022 at 10:40:27AM +0800, Wang Jianchao wrote: > bw/iops/lat of data or metadata of one cgroup is very basic statistics bw and iops can already be derived from the cumulative counters in io.stat. Latencies without distribution are often what we tradtionally exposed not because they're great but because exposing distributions is so cumbersome from kernel. Also, latency numbers at cgroup level isn't *that* useful anyway. There isn't a lot you can deduce for the particular cgroup from that number. > 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. It's really not that difficult to collect these numbers from bpf with pretty low overhead. There's the problem of deployment for which there isn't "the" right and convenient way but it'd be more worthwhile to put efforts towards that. > > 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. I mean, "really basic" means different things for different folks. Bytes / ios, we all seem to agree. Beyond that, who knows? There already are enough hooks to collect stats that you're trying to collect. The examples in py-bcc might be a good place to start. Thanks. -- tejun