]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
common, osd, tools: Add histograms to performance counters 12829/head
authorBartłomiej Święcki <bartlomiej.swiecki@corp.ovh.com>
Wed, 1 Feb 2017 09:03:06 +0000 (10:03 +0100)
committerBartłomiej Święcki <bartlomiej.swiecki@corp.ovh.com>
Wed, 1 Feb 2017 09:03:06 +0000 (10:03 +0100)
commit503402413c6a0039a083a1d2511bdff434c1dd37
treedae071412ab676c408462eab04851b494a1308af
parentd09fded5ae3a698219e4cf6f90b0d2e6dcbf7fbe
common, osd, tools: Add histograms to performance counters

This change adds new performance counter type: histogram.

Currently it does measure latency + request size (in bytes) of
an op similarly to l_osd_op_(r|w|rw)_lat and
l_osd_op_(r|w|rw)_(inb|outb). Histograms are 2-dimensional and
gather probes for both values at the same time. This allows
a more detailed analysis than what could be done with two
separate 1-D histograms. Still the memory footprint is negligible.

Since new data could break existing tools and the amount of data
dumped is rather large, two new admin socket commands are
introduced: perf histogram schema and perf histogram dump.
Invocation of original command should remain compatible.
There's also a new simple tool in src/tools/histogram_dump.py
which does a live dump of one histogram in local daemon.

Current configuration of histograms is hard-coded and should
cover all common cases. If it turns out to be useful, in the
future it could be loaded from the configuration.

Signed-off-by: Bartłomiej Święcki <bartlomiej.swiecki@corp.ovh.com>
12 files changed:
src/CMakeLists.txt
src/common/ceph_context.cc
src/common/perf_counters.cc
src/common/perf_counters.h
src/common/perf_histogram.cc [new file with mode: 0644]
src/common/perf_histogram.h [new file with mode: 0644]
src/osd/OSD.cc
src/osd/OSD.h
src/osd/PrimaryLogPG.cc
src/test/common/CMakeLists.txt
src/test/common/test_perf_histogram.cc [new file with mode: 0644]
src/tools/histogram_dump.py [new file with mode: 0755]