内存维持在40%到50%,如果有新的程序占用内存,则减少内存,有些公司有绩效考核,这个可能增加服务器资源使用率
#!/usr/bin/env python
# coding=utf-8
import subprocess
import time
SLEEP_TIME=10
MIN_MEM=40
MAX_MEM=50
def run_cmd(cmd):
process = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE, shell=True)
stdout, stderr = process.communicate(input=None)
return stdout
a = []
while True:
rss = run_cmd("/usr/bin/free -g | grep Mem | awk '{print $3}'")
total = run_cmd("/usr/bin/free -g | grep Mem | awk '{print $2}'")
percent=(float(rss)/float(total))*100
print("内存使用:%s" % rss),
print("总内存:%s" % total),
print("内存占比:%s" % percent)
print("脚本增加内存%sG" % len(a))
if percent < MIN_MEM:
s='a'*1024*1024*1024
a.append(s)
print("增加")
elif percent > MAX_MEM:
if len(a) > 1:
del a[0]
print("减少")
time.sleep(SLEEP_TIME)