天天看點

psutil基本使用

psutil.cpu_percent() cpu 百分比

mem = psutil.virtual_memory()

mem.total,mem.used mem.free

psutil.cpu_count() 邏輯cpu

psutil.cpu_count(logical=False)實體cpu

psutil.disk_partitions() # 使用 psutil.disk_partitions 方法擷取磁盤完整資訊

psutil.disk_usage('/') # 使用 psutil.disk_usage 方法擷取分區 ( 參數 ) 的使用情況

psutil.disk_io_counters() # 使用 psutil.disk_io_counters 擷取硬碟總的 IO 個數、

                    # 讀寫資訊

psutil.net_io_counters() # 使用 psutil.net_io_counters 擷取網絡總的 IO 資訊,默

# 認 pernic=False

>>>p.cpu_times() # 程序 CPU 時間資訊,包括 user、 system 兩個 CPU 時間

pcputimes(user=9.0500000000000007, system=20.25)

>>>p.cpu_affinity() #get 程序 CPU 親和度,如要設定程序 CPU 親和度,将 CPU 号作為參數即可

[0, 1]

>>>p.memory_percent() # 程序記憶體使用率

14.147714861289776

>>>p.memory_info() # 程序記憶體 rss、 vms 資訊

pmem(rss=71626752, vms=1575665664)

>>>p.io_counters() # 程序 IO 資訊,包括讀寫 IO 數及位元組數

pio(read_count=41133, write_count=16811, read_bytes=37023744, write_

bytes=4722688)

1. cpu占用率

1)每隔10秒擷取一次cpu占用率

psutil.cpu_percent()

2)每隔3分鐘取出CPU占用率最高記錄值,代表該三分鐘内CPU占用率

2. 記憶體

1)每隔10秒擷取一次記憶體占用率

100.0 - psutil.virtual_memory().percent

2)每隔3分鐘取出記憶體占用率最高記錄值,代表該三分鐘内記憶體占用率

3. 磁盤讀寫次數(iops)

1)每隔10秒擷取一次磁盤讀寫累計次數

read_count = psutil.disk_io_counters().read_count

write_count = psutil.disk_io_counters().write_count

total_count = read_count + write_count

2)減去上一次磁盤記錄累計次數,除以間隔時間(10秒)

(total_count - total_count_last)/10

3)每隔3分鐘取出磁盤每秒讀寫次數的最高記錄值,代表該三分鐘内名額

4. 磁盤讀寫量(mbps)

1)每隔10秒記錄一次磁盤讀寫累計量

read_bytes = psutil.disk_io_counters().read_bytes

wrtite_bytes = psutil.disk_io_counters().write_bytes

total_bytes = read_bytes + wrtite_bytes

2)減去上一次記錄磁盤讀寫累計量,除以間隔時間(10秒)

disk_bps = (total_bytes - total_bytes_last)/10

3)每隔3分鐘取出磁盤每秒讀寫量最高記錄值,除以1048576,代表該三分鐘内名額

disk_mbps = disk_bps/1048576

5. 網絡吞吐量

1)每隔10秒記錄一次網絡累計吞吐量

bytes_sent = psutil.net_io_counters().bytes_sent

bytes_recv = psutil.net_io_counters().bytes_recv

total_bytes = bytes_sent + bytes_recv

2)減去上一次記錄累計吞吐量,除以間隔時間(10秒)

net_bps = (total_bytes - total_bytes_last)/10

3)每隔3分鐘取出每秒網絡吞吐量最高記錄值,除以1048576,代表該三分鐘内名額

net_mbps = net_bps/1048576