[SIGAR-92] Add memory free and used in percentage units
This commit is contained in:
parent
31a5f214d3
commit
d826684c33
|
@ -312,6 +312,34 @@ our %classes = (
|
||||||
Win32 => 'taskman',
|
Win32 => 'taskman',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name => 'used_percent', type => 'Double',
|
||||||
|
desc => 'Percent total used system memory',
|
||||||
|
plat => '*',
|
||||||
|
cmd => {
|
||||||
|
AIX => '',
|
||||||
|
Darwin => '',
|
||||||
|
FreeBSD => '',
|
||||||
|
HPUX => '',
|
||||||
|
Linux => 'free',
|
||||||
|
Solaris => '',
|
||||||
|
Win32 => 'taskman',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name => 'free_percent', type => 'Double',
|
||||||
|
desc => 'Percent total free system memory',
|
||||||
|
plat => '*',
|
||||||
|
cmd => {
|
||||||
|
AIX => '',
|
||||||
|
Darwin => '',
|
||||||
|
FreeBSD => '',
|
||||||
|
HPUX => '',
|
||||||
|
Linux => 'free',
|
||||||
|
Solaris => '',
|
||||||
|
Win32 => 'taskman',
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
Swap => [
|
Swap => [
|
||||||
{
|
{
|
||||||
|
|
|
@ -36,6 +36,10 @@ public class TestMem extends SigarTestCase {
|
||||||
|
|
||||||
assertGtZeroTrace("Used", mem.getUsed());
|
assertGtZeroTrace("Used", mem.getUsed());
|
||||||
|
|
||||||
|
traceln("UsedPercent=" + mem.getUsedPercent());
|
||||||
|
|
||||||
|
traceln("FreePercent=" + mem.getFreePercent());
|
||||||
|
|
||||||
assertGtZeroTrace("Free", mem.getFree());
|
assertGtZeroTrace("Free", mem.getFree());
|
||||||
|
|
||||||
assertGtZeroTrace("ActualUsed", mem.getUsed());
|
assertGtZeroTrace("ActualUsed", mem.getUsed());
|
||||||
|
|
|
@ -141,6 +141,8 @@ typedef struct {
|
||||||
free,
|
free,
|
||||||
actual_used,
|
actual_used,
|
||||||
actual_free;
|
actual_free;
|
||||||
|
double used_percent;
|
||||||
|
double free_percent;
|
||||||
} sigar_mem_t;
|
} sigar_mem_t;
|
||||||
|
|
||||||
SIGAR_DECLARE(int) sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem);
|
SIGAR_DECLARE(int) sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem);
|
||||||
|
|
|
@ -457,11 +457,11 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||||
|
|
||||||
mem->used = mem->total - mem->free;
|
mem->used = mem->total - mem->free;
|
||||||
|
|
||||||
sigar_mem_calc_ram(sigar, mem);
|
|
||||||
|
|
||||||
mem->actual_free = mem->free;
|
mem->actual_free = mem->free;
|
||||||
mem->actual_used = mem->used;
|
mem->actual_used = mem->used;
|
||||||
|
|
||||||
|
sigar_mem_calc_ram(sigar, mem);
|
||||||
|
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,8 +79,6 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||||
|
|
||||||
mem->total = sigar->pstatic.physical_memory * pagesize;
|
mem->total = sigar->pstatic.physical_memory * pagesize;
|
||||||
|
|
||||||
sigar_mem_calc_ram(sigar, mem);
|
|
||||||
|
|
||||||
pstat_getdynamic(&stats, sizeof(stats), 1, 0);
|
pstat_getdynamic(&stats, sizeof(stats), 1, 0);
|
||||||
|
|
||||||
mem->free = stats.psd_free * pagesize;
|
mem->free = stats.psd_free * pagesize;
|
||||||
|
@ -89,6 +87,8 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||||
mem->actual_free = mem->free;
|
mem->actual_free = mem->free;
|
||||||
mem->actual_used = mem->used;
|
mem->actual_used = mem->used;
|
||||||
|
|
||||||
|
sigar_mem_calc_ram(sigar, mem);
|
||||||
|
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -441,9 +441,10 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||||
mem->actual_free = mem->free + kern;
|
mem->actual_free = mem->free + kern;
|
||||||
mem->actual_used = mem->used - kern;
|
mem->actual_used = mem->used - kern;
|
||||||
|
|
||||||
|
sigar_mem_calc_ram(sigar, mem);
|
||||||
|
|
||||||
if (get_ram(sigar, mem) != SIGAR_OK) {
|
if (get_ram(sigar, mem) != SIGAR_OK) {
|
||||||
/* XXX other options on failure? */
|
/* XXX other options on failure? */
|
||||||
sigar_mem_calc_ram(sigar, mem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
|
|
|
@ -65,11 +65,11 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||||
mem->free + mem->used +
|
mem->free + mem->used +
|
||||||
((vmstats.inactive_count + vmstats.wire_count) * vmstats.pagesize);
|
((vmstats.inactive_count + vmstats.wire_count) * vmstats.pagesize);
|
||||||
|
|
||||||
sigar_mem_calc_ram(sigar, mem);
|
|
||||||
|
|
||||||
mem->actual_free = mem->free;
|
mem->actual_free = mem->free;
|
||||||
mem->actual_used = mem->used;
|
mem->actual_used = mem->used;
|
||||||
|
|
||||||
|
sigar_mem_calc_ram(sigar, mem);
|
||||||
|
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -172,8 +172,6 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||||
mem->total = sysconf(_SC_PHYS_PAGES);
|
mem->total = sysconf(_SC_PHYS_PAGES);
|
||||||
mem->total <<= sigar->pagesize;
|
mem->total <<= sigar->pagesize;
|
||||||
|
|
||||||
sigar_mem_calc_ram(sigar, mem);
|
|
||||||
|
|
||||||
if (sigar_kstat_update(sigar) == -1) {
|
if (sigar_kstat_update(sigar) == -1) {
|
||||||
return errno;
|
return errno;
|
||||||
}
|
}
|
||||||
|
@ -194,6 +192,8 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||||
mem->actual_free = mem->free;
|
mem->actual_free = mem->free;
|
||||||
mem->actual_used = mem->used;
|
mem->actual_used = mem->used;
|
||||||
|
|
||||||
|
sigar_mem_calc_ram(sigar, mem);
|
||||||
|
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -627,11 +627,11 @@ SIGAR_DECLARE(int) sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||||
|
|
||||||
mem->used = mem->total - mem->free;
|
mem->used = mem->total - mem->free;
|
||||||
|
|
||||||
sigar_mem_calc_ram(sigar, mem);
|
|
||||||
|
|
||||||
mem->actual_free = mem->free;
|
mem->actual_free = mem->free;
|
||||||
mem->actual_used = mem->used;
|
mem->actual_used = mem->used;
|
||||||
|
|
||||||
|
sigar_mem_calc_ram(sigar, mem);
|
||||||
|
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -334,6 +334,12 @@ int sigar_mem_calc_ram(sigar_t *sigar, sigar_mem_t *mem)
|
||||||
|
|
||||||
mem->ram = ram;
|
mem->ram = ram;
|
||||||
|
|
||||||
|
mem->used_percent =
|
||||||
|
((double)(mem->total - mem->actual_free) * 100) / mem->total;
|
||||||
|
|
||||||
|
mem->free_percent =
|
||||||
|
((double)(mem->total - mem->actual_used) * 100) / mem->total;
|
||||||
|
|
||||||
return ram;
|
return ram;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue