定时获得服务器上内存的使用率
linux的内存使用跟win是不一样的,以下linux命令获得内存使用率是,linux os 预先分配的,实际上可能还没有使用这么多内存,可以使用
实际使用的内存是 535M
但是linux os占据了 1671M
对比下,可以使用以下代码获得操作系统占用的内存
linux的内存使用跟win是不一样的,以下linux命令获得内存使用率是,linux os 预先分配的,实际上可能还没有使用这么多内存,可以使用
$free -m
total used free shared buffers cached
Mem: 1942 1671 271 0 404 731
-/+ buffers/cache: 535 1406
Swap: 6015 5 6010
实际使用的内存是 535M
但是linux os占据了 1671M
对比下,可以使用以下代码获得操作系统占用的内存
re_meminfo_parser = re.compile(r'^(?P<key>\S*):\s*(?P<value>\d*)\s*kB')
def _get_mem_usage(self):
"""
get mem used by percent
self.result = falot
"""
result={}
try:
fd=open('/proc/meminfo', 'r')
lines=fd.readlines()
finally:
if fd:
fd.close()
for line in lines:
match=re_meminfo_parser.match(line)
if not match:
continue # skip lines that don't parse
key, value=match.groups(['key', 'value'])
result[key]=int(value)
#print "mem :", 100*(result["MemTotal"]-result["MemFree"])/result["MemTotal"]
return 100.0*(result["MemTotal"]-result["MemFree"])/result["MemTotal"]