获取linux本机cpu利用率,内存利用率代码

def _read_cpu_usage(self):
        """Read the current system cpu usage from /proc/stat."""
        try:
            fd = open("/proc/stat", 'r')
            lines = fd.readlines()
        finally:
            if fd:
                fd.close()
        for line in lines:
            l = line.split()
            if len(l) < 5:
                continue
            if l[0].startswith('cpu'):
                return l
        return []


    def get_cpu_usage(self):
        """
        get cpu avg used by percent
        """
        cpustr=self._read_cpu_usage()
        if not cpustr:
            return 0
        #cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100
        usni1=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4])
        usn1=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])
        #usni1=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[4])
        # self.sleep=2
        time.sleep(1)
        cpustr=self._read_cpu_usage()
        if not cpustr:
            return 0
        usni2=long(cpustr[1])+long(cpustr[2])+float(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4])
        usn2=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])
        cpuper=(usn2-usn1)/(usni2-usni1)
        return 100*cpuper


    def get_mem_usage(self):
        """Read the current system cpu usage from /proc/stat."""


        MemTotal = MemFree = Buffers = Cached = 0
        try:
            fd = open("/proc/meminfo", 'r')
            lines = fd.readlines()
        finally:
            if fd:
                fd.close()
        for line in lines:
            l = line.split()
            if l[0].find('MemTotal') == 0:
                MemTotal = int(l[1])
            elif l[0].find('MemFree') == 0:
                MemFree = int(l[1])
            elif l[0].find('Buffers') == 0:
                Buffers = int(l[1])
            elif l[0].find('Cached') == 0:
                Cached = int(l[1])
            else:
                continue
        if MemTotal:
            memper = (MemFree+Buffers+Cached)/float(MemTotal)
        else:
            memper = 0
        return 100*memper


    def getServerPerf(self):


        dic = {}
        resultLst = []
        dic.setdefault('cpu',self.get_cpu_usage())
        dic.setdefault('mem',self.get_mem_usage())
        resultLst.append(dic)
        return resultLst,len(resultLst)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值