2
我想使用python收集系統統計信息。主要是尋找一個libery或github項目,它已經做到了。我期望能夠收集/記錄下列事情。Python收集系統統計信息
- CPU使用率和或平均負載
- 磁盤可用空間
- 磁盤IO thoughput
- RAM的使用(自由,積極,緩存)
- 網絡IO
- 帶寬Usaged
- 正常運行時間
- 在服務器監控中還有其他任何用處。
編輯: 我主要在Linux系統尋找支持,我將在稍後轉入Windows系統。
我想使用python收集系統統計信息。主要是尋找一個libery或github項目,它已經做到了。我期望能夠收集/記錄下列事情。Python收集系統統計信息
編輯: 我主要在Linux系統尋找支持,我將在稍後轉入Windows系統。
嘗試使用psutil模塊here,看看示例。但是,對於DISK IO
,您可能必須使用wmi
和pywin32
模塊。
例如,對於DISK QUEUE LENGTH
與Windows使用此:
from win32pdh import *
import time
while True:
path = MakeCounterPath((None,"PhysicalDisk","_Total",None,0,"Avg. Disk Queue Length"),0)
query_handle = OpenQuery()
counter_handle = AddCounter(query_handle, path)
query_handle = OpenQuery()
counter_handle = AddCounter(query_handle, path)
CollectQueryData(query_handle)
time.sleep(2)
CollectQueryData(query_handle)
(counter_type, value) = GetFormattedCounterValue(counter_handle, PDH_FMT_DOUBLE)
print value
CloseQuery(query_handle)
它使用性能監視器應用程序的櫃檯上窗戶。對於Linux,有多種磁盤IO工具。
在LINUX DISK IO
退房iotop
here
此外,例如Linux的diskstats的使用,它會定期解析/proc/diskstats
def diskstats_parse(dev=None):
file_path = '/proc/diskstats'
result = {}
# ref: http://lxr.osuosl.org/source/Documentation/iostats.txt
columns_disk = ['m', 'mm', 'dev', 'reads', 'rd_mrg', 'rd_sectors',
'ms_reading', 'writes', 'wr_mrg', 'wr_sectors',
'ms_writing', 'cur_ios', 'ms_doing_io', 'ms_weighted']
columns_partition = ['m', 'mm', 'dev', 'reads', 'rd_sectors', 'writes', 'wr_sectors']
lines = open(file_path, 'r').readlines()
for line in lines:
if line == '': continue
split = line.split()
if len(split) == len(columns_disk):
columns = columns_disk
elif len(split) == len(columns_partition):
columns = columns_partition
else:
# No match
continue
data = dict(zip(columns_disk, split))
if dev != None and dev != data['dev']:
continue
for key in data:
if key != 'dev':
data[key] = int(data[key])
result[data['dev']] = data
return result
我希望這有助於。 :)
這些都有Linux支持。 – WojonsTech
psutil是我相信大多數linux,但'wmi'和'pywin32'是用於windows的。 – enginefree