diff --git a/plugins/system/example-graphs/kernel_same_page_merging-month.png b/plugins/system/example-graphs/kernel_same_page_merging-month.png new file mode 100644 index 00000000..f7d05020 Binary files /dev/null and b/plugins/system/example-graphs/kernel_same_page_merging-month.png differ diff --git a/plugins/system/kernel_same_page_merging b/plugins/system/kernel_same_page_merging new file mode 100644 index 00000000..bf14026f --- /dev/null +++ b/plugins/system/kernel_same_page_merging @@ -0,0 +1,73 @@ +#!/bin/bash +#%# family=auto + +: << EOF +=head1 NAME +kernel_same_page_merging - Outputs various metrics about same page merging. + +=head1 AUTHOR +=over 4 +=item * Michael Grote +=back + +=head1 LICENSE +GPLv3 or later + +SPDX-License-Identifier: GPL-3.0-or-later + +=head1 MAGIC MARKERS +=begin comment +These magic markers are used by munin-node-configure when installing +munin-node. +=end comment + #%# family=auto +=cut +EOF +# + +# Variablen +ksm_dir_run="/sys/kernel/mm/ksm/run" + +function print_labels { +cat << EOF +graph_title kernel same page merging +graph_category system +graph_order pages_unshared pages_volatile pages_shared pages_sharing +pages_shared.info how many shared pages are being used +pages_sharing.info how many more sites are sharing them i.e. how much saved +pages_unshared.info how many pages unique but repeatedly checked for merging +pages_volatile.info how many pages changing too fast to be placed in a tree +pages_shared.label pages shared +pages_sharing.label pages sharing +pages_unshared.label pages unshared +pages_volatile.label pages volatile +pages_shared.draw AREASTACK +pages_sharing.draw AREASTACK +pages_unshared.draw AREASTACK +pages_volatile.draw AREASTACK +EOF +} + + + +# wenn parameter = ... +if [ "$1" = "autoconf" ]; then + # prüfe ob ksm aktiviert ist + if [ ! -f "$ksm_dir_run" ]; then + echo "no ($ksm_dir_run not found)" + exit 0 + fi + echo yes + exit 0 +fi + +if [ "$1" = "config" ]; then + # setze label + print_labels + exit 0 +fi + +echo pages_shared.value $(cat "/sys/kernel/mm/ksm/pages_shared") +echo pages_sharing.value $(cat "/sys/kernel/mm/ksm/pages_sharing") +echo pages_unshared.value $(cat "/sys/kernel/mm/ksm/pages_unshared") +echo pages_volatile.value $(cat "/sys/kernel/mm/ksm/pages_volatile")