zoukankan      html  css  js  c++  java
  • python获取每颗cpu使用率

    以下是关于python来获取服务器每颗CPU使用率的使用脚本。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import re,time 
    
    def _read_cpu_usage(): 
            """Read the current system cpu usage from /proc/stat""" 
            statfile = "/proc/stat" 
            cpulist = [] 
            try: 
                    f = open(statfile, 'r') 
                    lines = f.readlines() 
            except: 
                    print "ERROR: Can not open %s,The system cannot continue to run" % (statfile) 
                    return [] 
            for line in lines:
                tmplist = line.split()
                if len(tmplist) < 5:
                    continue
                for b in tmplist:
                     m = re.search(r'cpud+',b)
                     if m is not None:
                        cpulist.append(tmplist)
            f.close()
            return cpulist
    
    def get_cpu_usage(): 
            cpuusage = {} 
            cpustart = {} 
            cpuend = {} 
            linestart = _read_cpu_usage() 
            if not linestart: 
                    return 0 
            for cpustr in linestart: 
                    usni=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4]) 
                    usn=long(cpustr[1])+long(cpustr[2])+long(cpustr[3]) 
                    cpustart[cpustr[0]] = str(usni)+":"+str(usn) 
            sleep = 2 
            time.sleep(sleep) 
            lineend = _read_cpu_usage() 
            if not lineend: 
                    return 0 
            for cpustr in lineend: 
                    usni=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4]) 
                    usn=long(cpustr[1])+long(cpustr[2])+long(cpustr[3]) 
                    cpuend[cpustr[0]] = str(usni)+":"+str(usn) 
            for line in cpustart: 
                    start = cpustart[line].split(':') 
                    usni1,usn1 = float(start[0]),float(start[1]) 
                    end = cpuend[line].split(':') 
                    usni2,usn2 = float(end[0]),float(end[1]) 
                    cpuper=(usn2-usn1)/(usni2-usni1) 
                    cpuusage[line] = int(100*cpuper) 
             
            return cpuusage 
    
    if __name__ == '__main__': 
            a = get_cpu_usage() 
            print a
  • 相关阅读:
    [Android教程]通过Intent分享数据内容给其他应用程序
    【Android您问我讲】Android 2.x中使用actionbar Actionbarsherlock的使用
    PHP按比例生成縮略圖片
    PHP實現任務計畫
    javascript下漢字和Unicode編碼互轉代碼
    js存/讀取cookie函數
    php Captcha 練習
    PHP概率抽獎
    讓iframe自適應高度
    簡單的 PHP 將sql文件導入數據庫程序
  • 原文地址:https://www.cnblogs.com/aslongas/p/5871102.html
Copyright © 2011-2022 走看看