On Wed, 2016-10-12 at 04:02 +0000, Naoki Iwakami wrote:
I am looking for a way to monitor disk activity while I access an SSD via
For example, any disk activity does not appear in vmstat or iostat
while I am running SPDK perf tool.
I understand it is expected, but I wonder if there is any tool
available to replace iostat for SPDK.
Or is there any SPDK API method that helps probing disk activities?
I think this is an important problem to solve as SPDK matures into a solution
used in production deployments, and we've been giving it some thought. Today,
our only available tool is our tracing library (include/spdk/trace.h,
lib/trace), which is an efficient mechanism to add small trace points to the
code. The trace points are placed in a shared memory region that can be mapped
by other tools to do analysis. We're currently investigating either expanding
this (adding well documented tracepoints instead of the ad hoc ones we have in
there now), or changing the format. At some point someone really needs to write
iostat-like tool that consumes these tracepoints and displays I/Ops and
bandwidth. We have a very basic example of how this would work (app/iscsi_top)
that displays live connection statistics for the iSCSI target, so maybe that's a
reasonable starting point. It would be awesome if someone from the community
took on the task of formalizing the tracepoints and writing the tool!
We're also working on multi-process support for the NVMe driver, which means
will be able to create I/O queues for the same NVMe device. This could
potentially allow tools to attach to an active SPDK process and send commands
directly to the SSD to query
performance metrics, if the SSD provides them. I think our long term vision for
this feature is to enable support for configuration and management of SPDK-owned
NVMe SSDs with the standard nvme-cli tool, but we're quite a ways off yet.
We're very open to ideas and feedback in this area if anyone has anything to say
on the subject!
> Thank you,