summaryrefslogtreecommitdiffstats
path: root/collectors/cgroups.plugin
diff options
context:
space:
mode:
authorVladimir Kobal <vlad@prokk.net>2021-10-05 08:17:49 +0300
committerGitHub <noreply@github.com>2021-10-05 08:17:49 +0300
commit8f3a6e85a786cc4935cfef5be6f342202452fa9e (patch)
tree8d7b5823408acd96d61cc715fea68163c27522ef /collectors/cgroups.plugin
parentdf2bb80588412b6e925244340c910cbc04ac93d9 (diff)
Fix swap size calculation for cgroups (#11617)
Diffstat (limited to 'collectors/cgroups.plugin')
-rw-r--r--collectors/cgroups.plugin/sys_fs_cgroup.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/collectors/cgroups.plugin/sys_fs_cgroup.c b/collectors/cgroups.plugin/sys_fs_cgroup.c
index 076c6773df..83374eb3b7 100644
--- a/collectors/cgroups.plugin/sys_fs_cgroup.c
+++ b/collectors/cgroups.plugin/sys_fs_cgroup.c
@@ -2911,7 +2911,15 @@ void update_systemd_services_charts(
if(unlikely(!cg->rd_swap_usage))
cg->rd_swap_usage = rrddim_add(st_swap_usage, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
- rrddim_set_by_pointer(st_swap_usage, cg->rd_swap_usage, cg->memory.msw_usage_in_bytes);
+ if(!(cg->options & CGROUP_OPTIONS_IS_UNIFIED)) {
+ rrddim_set_by_pointer(
+ st_swap_usage,
+ cg->rd_swap_usage,
+ (cg->memory.msw_usage_in_bytes - (cg->memory.usage_in_bytes + cg->memory.total_inactive_file)) > 0 ?
+ cg->memory.msw_usage_in_bytes - (cg->memory.usage_in_bytes + cg->memory.total_inactive_file) : 0);
+ } else {
+ rrddim_set_by_pointer(st_swap_usage, cg->rd_swap_usage, cg->memory.msw_usage_in_bytes);
+ }
}
if(likely(do_io && cg->io_service_bytes.updated)) {
@@ -3601,8 +3609,8 @@ void update_cgroup_charts(int update_every) {
rrddim_set(
cg->st_mem_usage,
"swap",
- (cg->memory.msw_usage_in_bytes > cg->memory.usage_in_bytes) ?
- cg->memory.msw_usage_in_bytes - cg->memory.usage_in_bytes : 0);
+ (cg->memory.msw_usage_in_bytes - (cg->memory.usage_in_bytes + cg->memory.total_inactive_file)) > 0 ?
+ cg->memory.msw_usage_in_bytes - (cg->memory.usage_in_bytes + cg->memory.total_inactive_file) : 0);
} else {
rrddim_set(cg->st_mem_usage, "swap", cg->memory.msw_usage_in_bytes);
}