qmemman: use 'Memtotal' from /proc/meminfo to calculate used memory
Previously, memory_actual (retrieved from xen) was used; it can be inconsistent. 'Memtotal' can be spoofed, but anyway we rely on other fields from /proc/meminfo.
This commit is contained in:
parent
5a33ed71ce
commit
24b3baf063
@ -50,7 +50,7 @@ class SystemState:
|
|||||||
dict[string.rstrip(l2[0], ":")] = l2[1]
|
dict[string.rstrip(l2[0], ":")] = l2[1]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for i in ('MemFree', 'Buffers', 'Cached', 'SwapTotal', 'SwapFree'):
|
for i in ('MemTotal', 'MemFree', 'Buffers', 'Cached', 'SwapTotal', 'SwapFree'):
|
||||||
val = int(dict[i])*1024
|
val = int(dict[i])*1024
|
||||||
if (val < 0):
|
if (val < 0):
|
||||||
return None
|
return None
|
||||||
|
@ -2,7 +2,7 @@ def is_suspicious(dom):
|
|||||||
ret = False
|
ret = False
|
||||||
if dom.meminfo['SwapTotal'] < dom.meminfo['SwapFree']:
|
if dom.meminfo['SwapTotal'] < dom.meminfo['SwapFree']:
|
||||||
ret = True
|
ret = True
|
||||||
if dom.memory_actual < dom.meminfo['MemFree'] + dom.meminfo['Cached'] + dom.meminfo['Buffers']:
|
if dom.meminfo['MemTotal'] < dom.meminfo['MemFree'] + dom.meminfo['Cached'] + dom.meminfo['Buffers']:
|
||||||
ret = True
|
ret = True
|
||||||
if ret:
|
if ret:
|
||||||
print 'suspicious meminfo for domain', dom.id, 'mem actual', dom.memory_actual, dom.meminfo
|
print 'suspicious meminfo for domain', dom.id, 'mem actual', dom.memory_actual, dom.meminfo
|
||||||
@ -17,7 +17,7 @@ def recalc_mem_used(domdict):
|
|||||||
dom.meminfo = None
|
dom.meminfo = None
|
||||||
dom.mem_used = None
|
dom.mem_used = None
|
||||||
else:
|
else:
|
||||||
dom.mem_used = dom.memory_actual - dom.meminfo['MemFree'] - dom.meminfo['Cached'] - dom.meminfo['Buffers'] + dom.meminfo['SwapTotal'] - dom.meminfo['SwapFree']
|
dom.mem_used = dom.meminfo['MemTotal'] - dom.meminfo['MemFree'] - dom.meminfo['Cached'] - dom.meminfo['Buffers'] + dom.meminfo['SwapTotal'] - dom.meminfo['SwapFree']
|
||||||
|
|
||||||
def prefmem(dom):
|
def prefmem(dom):
|
||||||
if dom.meminfo_updated:
|
if dom.meminfo_updated:
|
||||||
|
Loading…
Reference in New Issue
Block a user