cpuHistory.log或復制代碼代碼如下:top-bi|teecpuHistory.log這個就不解釋了,不懂的朋友查詢下top的幫助文檔。這里要實現的是通過python調用top命令,并獲得cpu的利用率信息。用過popen的朋友很快就能想到類似如下的代碼(這個是" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統 1898 0

本文定位:想通過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

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 青岛市| 贵南县| 陆良县| 安化县| 新安县| 莱芜市| 永丰县| 江西省| 阿坝县| 周口市| 从江县| 建始县| 什邡市| 株洲县| 西安市| 沅陵县| 嘉义市| 自治县| 长丰县| 漾濞| 松滋市| 绥德县| 横峰县| 金昌市| 文山县| 三江| 松阳县| 巴彦淖尔市| 田林县| 康定县| 武定县| 衡东县| 株洲市| 溧阳市| 固始县| 荃湾区| 特克斯县| 通辽市| 讷河市| 东乡| 会同县|