我想啟動一個始終在后臺運行的芹菜行程。我希望這些正在運行的行程能夠跟蹤需要并行執行新任務時將啟動的所有其他行程的系統資源(CPU、RAM 等)使用情況。然后我希望跟蹤程序定期將資料記錄到檔案中。
如果上述實作是可能的,在生產設定中使用是否安全?
我還沒有嘗試過,但我已經閱讀了有關 psutil 和 py-spy 的資訊。但我不確定它們是否可用于跟蹤另一個并行行程的行程
uj5u.com熱心網友回復:
已閱讀有關 psutil 和 py-spy 的資訊。但我不確定它們是否可用于跟蹤另一個并行行程的行程。
是的他們可以。
它們類似于分叉一個$ ps axup ${PID}孩子。如果 ps 可以獲得統計資訊,那么 psutil 也可以。
使用wait4()顯然只適用于孩子。
getrusage()為自己和孩子使用作品。
曾幾何時 ps 需要 sguid 權限才能讀取 /dev/kmem。/proc 偽檔案系統整理了一些權限細節。
uj5u.com熱心網友回復:
psutil當然可以。
import psutil
p=psutil.Process(121000) # a pid you want to track. Father, son, brother, unrelated. It doesn't matter
p.cpu_percent()
# 1.4 my process use 1.4% of a cpu
p.cpu_times()
# pcputimes(user=42.4, system=0.01, children_user=0.0, children_system=0.0, iowait=0.01)
# Or detail
p.cpu_times().user, p.cpu_times().system
# Time spend so far, in sec
p.memory_percent()
#0.14 (0,14% memory used)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/529653.html
