Dstat performance
=================

Introduction
------------
Since dstat is written in python, it is not optimized for performance.

When doing performance analysis, it is always important to verify that
the monitoring tool is not messing with the performance numbers.
(eg. writing to disk, using cpu/memory/network, increasing load)

Depending on the stats being used and the load on the server itself
the impact Dstat has on the system you are monitoring might be
considerable. A lot of plugins are pretty fast (less than 0.1ms on
an modest 1.2Ghz laptop, but some plugins may use up to 3ms using
up to 2% of your CPU).

Before performing any tests please verify for yourself what impact
Dstat has on your test results and keep that in mind when analysing
the results afterwards.

In case the impact is higher than expected, reduce the number of stats
and remove expensive stats or even look at the plugin you're using and
send me optimisations.

Newer python versions are also faster than older ones, and hardware is
only becoming faster at a pace that these considerations may not hold
anylonger.

If you need feedback about plugin performance, use the --debug option
to profile different plugins. If you use -t together with --debug, you
can see the time deviation on your system in relation to load/plugins.

Remember that invisible plugins (that run out of your terminal window)
do take up cycles because the information is still being collected and
possibly written to CSV output.

It should be possible to write plugins in C to improve the impact on
the system, but I have no experience with writing python modules in C.
Any feedback on this is welcomed.


Performance tuning
------------------
The following documents may be useful to tune a system for performance

+ http://people.redhat.com/alikins/system_tuning.html[]


NOTE: Please send me improvements to this document.
