ntprof
Profiling NVMe-over-TCP in Linux
What is ntprof?
ntprof is a systematic, informative, and lightweight NVMe-over-TCP profiler. The key idea is to view the NVMe/TCP storage substrate as a lossless switched network and apply network monitoring techniques. It models each on-path system module as a software switch, equips it with a programmable profiling agent on the data plane, and develops a proactive query interface for statistics collection and analysis. Comprising a kernel module and a user-space utility, it allows developers to define various profiling tasks, incurs marginal overhead when co-locating with applications, and generates performance reports based on prescribed specifications.
Informative
ntprof provides adequate running statistics about NVMe/TCP processing at the prescribed I/O granularity and profiling scope for protocol understanding, performance diagnostic, and bottleneck localization.
Profiling Rich
ntprof provides diverse end-to-end profiling capabilities, accommodating various storage workload profiles, dissecting deep and pipelined protocol handling, analyzing inter-layer interaction, and reporting characteristics based on the task specification.
Lightweight
ntprof allows online and offline profiling based on the developer's need. It also provides tunable options to contorl the sample rate. It splits the statisc collection and analysis to minimize the overhead.