Comment # 7
on bug 1044
from Ken McDonell
commit 09f68c6b fixes this for Frank's test case ... from the gitlog ...
libpcp/interp.c: fix one performance issue (Bug 1044)
Additional logic added to avoid rescanning the region between the
current time point and the next <mark> record once it has been
established there are not useful metric-instance values in this
region.
The reason this has not been seen before is that for most archives
the logged metrics are similar and repeated often, so there are
only small regions between the last logged value and a <mark>
record. When the archive is large and some metric may be logged
infrequently (like once per pmlogger execution), then the problem
becomes evident.
This fix addresses the most glaring cause of Frank's observed
performance problems in
http://oss.sgi.com/bugzilla/show_bug.cgi?id=1044
as shown below:
Command:
pmval -t 60 -a super-SLOW-merged-archive-20140124.225919 pmcd.numagents
Original
real 6m1.836s
user 4m55.990s
sys 1m5.705s
New
real 0m32.297s
user 0m29.620s
sys 0m2.690s
That's better than an 11-fold reduction in CPU time ... and the output
is identical.