国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Linux下使用python調用top命令獲得CPU利用率

2019-11-25 17:58:11
字體:
來源:轉載
供稿:網友

本文定位:想通過python調用top命令獲取cpu使用率但暫時沒有思路的情況。
如果單純為了獲得cpu的利用率,通過top命令重定向可以輕松實現,命令如下:

復制代碼 代碼如下:

top -bi > cpuHistory.log


復制代碼 代碼如下:

top -bi | tee  cpuHistory.log

這個就不解釋了,不懂的朋友查詢下top的幫助文檔。這里要實現的是通過python調用top命令,并獲得cpu的利用率信息。
用過popen的朋友很快就能想到類似如下的代碼(這個是我第一次寫的代碼,*_*):

復制代碼 代碼如下:

#! /usr/bin/python

import os,time

time2sleep = 1.5
while True:
        print os.popen('top -bi -n 1').read().split('/n')[2]
        time.sleep(time2sleep)

原理看起來沒錯,可是跑起來就出問題了:cpu的idle值一直不變!!!
原因在于執行的命令“top -bi -n 1”:單獨執行這個命令,你會發現輸出結果中cpu的idle值就是一直不變的。
所以不能這樣寫……
在終端執行“top -bi -n 2”命令,你會發現第二個值每次都在變化,這個就是我們想要結果。
考慮到時間問題,命令這樣寫會更好:“top -bi -n 2 -d 0.02”
代碼如下:

復制代碼 代碼如下:

#! /usr/bin/python
'''
   File      : cpuRate.py
   Author    : Mike
   E-Mail    : Mike_Zhang@live.com
 '''
import os,time

time2sleep = 2.5
while True:
        print int(time.time()),
        print os.popen('top -bi -n 2 -d 0.02').read().split('/n/n/n')[1].split('/n')[2]
        time.sleep(time2sleep)

執行效果如下:

復制代碼 代碼如下:

$ ./cpuRate.py
1328109437 Cpu(s): 10.0%us, 20.0%sy,  0.0%ni, 70.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
1328109441 Cpu(s):  0.0%us, 16.7%sy,  0.0%ni, 83.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
1328109444 Cpu(s):  0.0%us, 16.7%sy,  0.0%ni, 83.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
1328109447 Cpu(s): 12.5%us, 12.5%sy,  0.0%ni, 75.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

好,就這些了,希望對你有幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 颍上县| 江都市| 乌恰县| 商洛市| 水富县| 武乡县| 乐亭县| 樟树市| 临澧县| 手机| 新平| 霍城县| 房产| 轮台县| 忻城县| 通辽市| 富平县| 眉山市| 威海市| 诏安县| 错那县| 德化县| 巩义市| 九龙城区| 绥宁县| 稷山县| 行唐县| 怀仁县| 千阳县| 元朗区| 托里县| 广安市| 湖南省| 民乐县| 新晃| 石河子市| 和平区| 淮南市| 平阴县| 鄂州市| 万安县|