溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python是怎樣實現(xiàn)監(jiān)控指定進程的cpu和內(nèi)存使用率

發(fā)布時間:2022-01-06 13:10:34 來源:億速云 閱讀:228 作者:柒染 欄目:開發(fā)技術(shù)

這篇文章給大家介紹python是怎樣實現(xiàn)監(jiān)控指定進程的cpu和內(nèi)存使用率,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

為了測試某個服務(wù)的穩(wěn)定性,通常需要在服務(wù)長時間運行的情況下,監(jiān)控其資源消耗情況,比如cpu和內(nèi)存使用

這里借助python的psutil這個包可以很方便的監(jiān)控指定進程號(PID)的cpu和內(nèi)存使用情況

代碼

process_monitor.py

import sys
import time
import psutil

# get pid from args
if len(sys.argv) < 2:
    print ("missing pid arg")
    sys.exit()

# get process
pid = int(sys.argv[1])
p = psutil.Process(pid)

# monitor process and write data to file
interval = 3 # polling seconds
with open("process_monitor_" + p.name() + '_' + str(pid) + ".csv", "a+") as f:
    f.write("time,cpu%,mem%\n") # titles
    while True:
        current_time = time.strftime('%Y%m%d-%H%M%S',time.localtime(time.time()))
        cpu_percent = p.cpu_percent() # better set interval second to calculate like:  p.cpu_percent(interval=0.5)
        mem_percent = p.memory_percent()
        line = current_time + ',' + str(cpu_percent) + ',' + str(mem_percent)
        print (line)
        f.write(line + "\n")
        time.sleep(interval)
  • 支持跨平臺linux,windows,mac

  • 根據(jù)pid號獲取進程實例,固定時間間隔查詢其cpu和內(nèi)存的使用百分比

  • 將監(jiān)控數(shù)據(jù)寫入文件,一邊后續(xù)分析

  • 必要的話,也可以額外統(tǒng)計整個機器的資源狀況

實例

使用命令

python process_monitor.py 25272

文件保存結(jié)果

python是怎樣實現(xiàn)監(jiān)控指定進程的cpu和內(nèi)存使用率

繪制出曲線圖

python是怎樣實現(xiàn)監(jiān)控指定進程的cpu和內(nèi)存使用率

關(guān)于python是怎樣實現(xiàn)監(jiān)控指定進程的cpu和內(nèi)存使用率就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI