Linux下使用python調(diào)用top命令獲得CPU利用率
本文定位:想通過python調(diào)用top命令獲取cpu使用率但暫時沒有思路的情況。
如果單純?yōu)榱双@得cpu的利用率,通過top命令重定向可以輕松實現(xiàn),命令如下:
top -bi > cpuHistory.log
或
top -bi | tee cpuHistory.log
這個就不解釋了,不懂的朋友查詢下top的幫助文檔。這里要實現(xiàn)的是通過python調(diào)用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值一直不變?。?!
原因在于執(zhí)行的命令“top -bi -n 1”:單獨執(zhí)行這個命令,你會發(fā)現(xiàn)輸出結(jié)果中cpu的idle值就是一直不變的。
所以不能這樣寫……
在終端執(zhí)行“top -bi -n 2”命令,你會發(fā)現(xiàn)第二個值每次都在變化,這個就是我們想要結(jié)果。
考慮到時間問題,命令這樣寫會更好:“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)
執(zhí)行效果如下:
$ ./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
好,就這些了,希望對你有幫助。
相關(guān)文章
在pycharm中運行js文件以及附加node.js下載步驟
js文件需要用node來運行,所以首先要安裝node軟件,下面這篇文章主要給大家介紹了關(guān)于在pycharm中運行js文件以及附加node.js下載步驟的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12Python實現(xiàn)生成隨機數(shù)據(jù)插入mysql數(shù)據(jù)庫的方法
這篇文章主要介紹了Python實現(xiàn)生成隨機數(shù)據(jù)插入mysql數(shù)據(jù)庫的方法,涉及Python隨機字符串生成及數(shù)據(jù)庫連接、插入等相關(guān)操作技巧,需要的朋友可以參考下2017-12-12使用 Python 快速實現(xiàn) HTTP 和 FTP 服務(wù)器的方法
這篇文章主要介紹了使用 Python 快速實現(xiàn) HTTP 和 FTP 服務(wù)器 的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07Pygame游戲開發(fā)之太空射擊實戰(zhàn)碰撞改進(jìn)篇
相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動手實現(xiàn)它,在編寫學(xué)習(xí)中回顧過往展望未來,在本課中,我們將討論如何更改?Pygame?處理精靈之間沖突的方式2022-08-08python中g(shù)etaddrinfo()基本用法實例分析
這篇文章主要介紹了python中g(shù)etaddrinfo()基本用法,實例分析了Python中使用getaddrinfo方法進(jìn)行IP地址解析的基本技巧,需要的朋友可以參考下2015-06-06