Skip to content

Commit 7b71b92

Browse files
committed
Fix linux filesystem cache calculation hyperic#73
1 parent e1f85fd commit 7b71b92

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/os/linux/linux_sigar.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ static SIGAR_INLINE sigar_uint64_t sigar_meminfo(char *buffer,
322322

323323
int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
324324
{
325-
sigar_uint64_t buffers, cached, kern;
325+
sigar_uint64_t kern = 0;
326326
char buffer[BUFSIZ];
327327

328328
int status = sigar_file2str(PROC_MEMINFO,
@@ -336,10 +336,11 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
336336
mem->free = sigar_meminfo(buffer, MEMINFO_PARAM("MemFree"));
337337
mem->used = mem->total - mem->free;
338338

339-
buffers = sigar_meminfo(buffer, MEMINFO_PARAM("Buffers"));
340-
cached = sigar_meminfo(buffer, MEMINFO_PARAM("Cached"));
339+
/* Filesystem cache; the 'Cached' item includes swap-backed shmem */
340+
kern += sigar_meminfo(buffer, MEMINFO_PARAM("Active(file)"));
341+
kern += sigar_meminfo(buffer, MEMINFO_PARAM("Inactive(file)"));
342+
kern += sigar_meminfo(buffer, MEMINFO_PARAM("SReclaimable"));
341343

342-
kern = buffers + cached;
343344
mem->actual_free = mem->free + kern;
344345
mem->actual_used = mem->used - kern;
345346

0 commit comments

Comments
 (0)