内存维持在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)
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐