Architecture of JavaMelody is lightweight. So it has a lower overhead
as I can compare it to other available solutions.
The overhead is so low that it can be enabled continuously in QA
environment. And if no problem arises in QA, also continuously in
production environment : it is made for that. (It is already used in
QA and production with an application of 25 person years.)
Why is the overhead low ?
- First, it does monitoring not profiling : there is no
instrumentation of classes like some well known profilers (NetBeans
profiler for example) or some monitoring tools. JavaMelody has instead
"interceptors" for http, jdbc by default, and spring or ejb3 if you
wish so.
- Second, I would say that the overhead of some other good monitoring
solutions is in the recording of each event in a database or in a
master server. With JavaMelody, there is no database and no recording
of each events even in a file or over the wire like most others : only
statistics of requests are kept, so the overhead of cpu is minimal
with no I/O on the wire and minimal I/O on disk (just to take a backup
of statistics at a regular interval). Likewise, it is only statistics
and not events so the overhead of memory is quite minimal.
- Third, with little overhead you will be able to know what needs
optimizing in the QA or production server(s). So that the overhead of
JavaMelody will be negative.
- Fourth, if overhead does really some pain for your app with
thousands active users, you will have the choice to use javamelody
centralized collect server. It unloads the memory, the backup storage
and the generation of reports to another server while adding I/O on
the wire for sending deltas of the statistics.
- Fifth, the financial overhead is zero as JavaMelody is opensource
and free.
For full disclosure, some system actions (disabled by default) can
consume some cpu. These system actions are : Launch the garbage
collector, Take a heap dump, Display memory histogram.
I do not have figures, but overhead is probably under 5% of cpu and of
memory, except if you are not reasonable at all when enabling
monitoring of spring or ejb3.
Do these explanations convince you ?
Emeric
On 24 nov, 23:55, "
oli...@gtwm.co.uk" <
oliver.ko...@googlemail.com>
wrote: