diff options
author | Ponnuvel Palaniyappan <ponnuvel.palaniyappan@canonical.com> | 2021-01-24 18:40:13 +0000 |
---|---|---|
committer | Jake Hunsaker <jhunsake@redhat.com> | 2021-01-29 11:20:20 -0500 |
commit | 9fba4ec1b4649006140e48ba1b1c8c286f6ad1ef (patch) | |
tree | 81ea0356839509412abed596ed05f5f664573abc | |
parent | a0cb4efb473a553fa034aaa8980635897adf1894 (diff) | |
download | sos-9fba4ec1b4649006140e48ba1b1c8c286f6ad1ef.tar.gz |
[bcache] Add a new plugin for bcache
bcache is used as a caching device (typically an SSD) for
HDDs; bcache stats are useful to identify performance problems.
Closes: #2378
Resolves: #2384
Signed-off-by: Ponnuvel Palaniyappan <ponnuvel.palaniyappan@canonical.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
-rw-r--r-- | sos/report/plugins/bcache.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/sos/report/plugins/bcache.py b/sos/report/plugins/bcache.py new file mode 100644 index 00000000..3e3adb8d --- /dev/null +++ b/sos/report/plugins/bcache.py @@ -0,0 +1,56 @@ +# Copyright (C) 2021, Canonical ltd +# Ponnuvel Palaniyappan <ponnuvel.palaniyappan@canonical.com> + +# This file is part of the sos project: https://github.com/sosreport/sos +# +# This copyrighted material is made available to anyone wishing to use, +# modify, copy, or redistribute it subject to the terms and conditions of +# version 2 of the GNU General Public License. +# +# See the LICENSE file in the source distribution for further information. + +from sos.report.plugins import Plugin, IndependentPlugin, SoSPredicate + + +class Bcache(Plugin, IndependentPlugin): + + short_desc = 'Bcache statistics' + + plugin_name = 'bcache' + profiles = ('storage', 'hardware') + files = ('/sys/fs/bcache',) + + def setup(self): + + # Caution: reading /sys/fs/bcache/*/cache0/priority_stats is known + # to degrade performance on old kernels. Needs care if that's ever + # considered for inclusion here. + # see: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1840043 + self.add_forbidden_path([ + '/sys/fs/bcache/*/*/priority_stats', + ]) + + self.add_copy_spec([ + '/sys/block/bcache*/bcache/cache/internal/copy_gc_enabled', + '/sys/block/bcache*/bcache/cache_mode', + '/sys/block/bcache*/bcache/dirty_data', + '/sys/block/bcache*/bcache/io_errors', + '/sys/block/bcache*/bcache/sequential_cutoff', + '/sys/block/bcache*/bcache/stats_hour/bypassed', + '/sys/block/bcache*/bcache/stats_hour/cache_hit_ratio', + '/sys/block/bcache*/bcache/stats_hour/cache_hits', + '/sys/block/bcache*/bcache/stats_hour/cache_misses', + '/sys/block/bcache*/bcache/writeback_percent', + '/sys/fs/bcache/*/average_key_size', + '/sys/fs/bcache/*/bdev*/*', + '/sys/fs/bcache/*/bdev*/stat_*/*', + '/sys/fs/bcache/*/block_size', + '/sys/fs/bcache/*/bucket_size', + '/sys/fs/bcache/*/cache_available_percent', + '/sys/fs/bcache/*/congested_*_threshold_us', + '/sys/fs/bcache/*/internal/*', + '/sys/fs/bcache/*/stats_*/*', + '/sys/fs/bcache/*/tree_depth', + ], pred=SoSPredicate(self, kmods=['bcache'])) + +# vim: set et ts=4 sw=4 : |