機器效能數據收集

更新於 發佈於 閱讀時間約 9 分鐘

1. 程式開發 (程式名稱: WMI_CMD2.py):

1.1程式功能:

Windows系統運行中,當時的效能數據,寫出檔案供後續利用,

效能數據有CPU,Memory, Disk Partition Size等

1.2 開發工具為 Python 3.8.3 [MSC v.1916 64 bit (AMD64)]。

*可免費使用,縮編式,易於閱讀,行數短少簡易

1.3 編輯工具 Spyder 4.1.4

*直譯式,不必compile 原始螞碼可直接執行,結果易於debug

1.4 使用模組Module/套件 Package : import wmi , time, json, os

*標準模組函數,各第三方套件 可import到程式使用,效率高

1.5 使用函數 : getSysInfo(),get_fs_info()

*自定函數運用, 收集當時的效能狀況

包括 CPU,Mem, Disk Partition Size ,freesize, useage%

1.6 收集資訊寫出: 顯示及出力效能 txt file

1.7 打包執行檔 :pyinstaller -F D:\Users\linct\XXX.py

==> 系統管理者身分執行後,產生exe file,本例WMI_CMD2.exe

*執行檔可以移至其它Windows機器執行,注意相關外部檔案須同一folder,否則

程式內需特別指定路徑


2. 實際運用:

2.1 檔案配置:

*程式配置: 於D:\XXX-IT\WMI\ 存放程式執行檔(WMI_CMD2.exe),及

寫出記錄file ( CMD_jsonFile.txt) ==>本程式exe file, output file 須同目錄之下

*收集JOB: 各個機器內,於 D:\XXX-IT\WMI\WMI_CMD.bat 配置該JOB,

例如 機器排定每周1,3,5 執行收集程式之JOB

*連線主機: MAP 至 D:\XXXIT\WMI\,命名 W槽

*收集對象機器 : 四台 (1)DB1 , (2) DB2 (3) AP (4)SF

*收集資料 : 各機器收集的資料,集中寫入於 主機機器 上單一txt file 保存

3. 擴充應用:

3.1 設定排程,自動執行本程式,可以週期性執行,取得多數個數據後,

計算出該週期之平均值,如每時,每日,每周,每月之該機器效能變化

與趨勢。新系統導入運用時,機器效能可利用幾秒 幾分 迴圈執行取得評價資料

3.2 Windows機器皆可適用,只要呼叫出本python程式執行檔即可收集

(CALL WMI_CMD2.exe)

3.3 出力歷史紀錄檔,可當作稽查受查時,說明之憑證提出

3.4 可定期eMail 寄出收集之效能記錄txt file,讓擔當者可即時確認,

提早對應避免事件發生


4. 程式(WMI_CMD2.py)撰寫內容:

-------- Python coding ------------

# -*- coding: utf-8 -*-

"""

Created on ---

@author: -----

"""

import wmi

import time

import json

import os

# get PC name and OS time , then write to txt file

PcName = os.getenv('ComputerName')

# timestamp = time.strftime('%a, %Y-%m-%d %H:%M:%S', time.localtime())

timestamp = time.strftime('%a, %Y-%m-%d %H:%M', time.localtime())

PcNameTime = PcName + " at " + timestamp

file1 = open('CMD_jsonFile.txt', 'at') # 附加和文字模式

file1.write('\n')

file1.write(PcNameTime) # 把資料寫入檔案

print (PcNameTime)


#====CPU,MEM

def getSysInfo(wmiService = None):

result = {}

if wmiService == None:

wmiService = wmi.WMI()

# cpu

for cpu in wmiService.Win32_Processor():

result['CPU_%'] = cpu.loadPercentage

# memory

cs = wmiService.Win32_ComputerSystem()

os = wmiService.Win32_OperatingSystem()

result['MemTot_GB'] = round(int(cs[0].TotalPhysicalMemory)/1024/1024/1024,2)

#result['MemFree_GB'] = round(int(os[0].FreePhysicalMemory)/1024/1024,2)

result['MemUse_GB'] = result['MemTot_GB'] - round(int(os[0].FreePhysicalMemory)/1024/1024,2)

return result


if __name__ == '__main__':

wmiService = wmi.WMI()

while True:

print (getSysInfo(wmiService))

fs = getSysInfo(wmiService)

jsObj = json.dumps(fs)

# file1.write('\n')

file1.write(jsObj)

# time.sleep(3)

break


#====DISK 獲取檔案系統資訊。包含分割槽的大小、已用量、可用量、使用率、掛載點資訊


def get_fs_info() :

tmplist = []

c = wmi.WMI ()

for physical_disk in c.Win32_DiskDrive ():

for partition in physical_disk.associators ("Win32_DiskDriveToDiskPartition"):

for logical_disk in partition.associators ("Win32_LogicalDiskToPartition"):

tmpdict = {}

tmpdict["Part"] = logical_disk.Caption

tmpdict["TOT_GB"] = round(int(logical_disk.Size)/1024/1024/1024,2)

# tmpdict["FreeSpace"] = round(int(logical_disk.FreeSpace)/1024/1024/1024,2)

tmpdict["Use_GB"] =round(tmpdict["PartTOT_GB"] - round(int(logical_disk.FreeSpace)/1024/1024/1024,2),2)

tmpdict["Use_%"] = int(100.0*(int(logical_disk.Size)-int(logical_disk.FreeSpace))/int(logical_disk.Size))

tmplist.append(tmpdict)

return tmplist


if __name__ == "__main__":

fs = get_fs_info()

print (fs) # 可省

jsObj = json.dumps(fs[0: ])

# file1.write('\n')

file1.write(jsObj)

file1.close()

------------------ end of coding -------------------



留言
avatar-img
留言分享你的想法!
avatar-img
linct的沙龍
64會員
185內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
linct的沙龍的其他內容
2025/03/31
比爾·蓋茲於1999年出版的《數位神經系統》一書,至今仍具有參考價值。本文探討該書的核心概念,如何在當今的科技環境下應用數位神經系統,並提出一些需要調整的部分。
Thumbnail
2025/03/31
比爾·蓋茲於1999年出版的《數位神經系統》一書,至今仍具有參考價值。本文探討該書的核心概念,如何在當今的科技環境下應用數位神經系統,並提出一些需要調整的部分。
Thumbnail
2025/01/26
此程式利用批次檔(bat)結合vbscript,自動篩選Windows事件紀錄,並產生Excel報表,方便管理人員統計與分析系統事件。
Thumbnail
2025/01/26
此程式利用批次檔(bat)結合vbscript,自動篩選Windows事件紀錄,並產生Excel報表,方便管理人員統計與分析系統事件。
Thumbnail
2025/01/20
此程式 可將 CSV 檔案資料轉換並更新至 Excel 檔案,減少檔案大小並方便傳輸。程式可自訂 CSV、Excel 檔案路徑及更新範圍,多種儲存格式與應用場景,如讀取 TXT 檔案、保留 Excel 巨集公式及設定排程自動執行等。
Thumbnail
2025/01/20
此程式 可將 CSV 檔案資料轉換並更新至 Excel 檔案,減少檔案大小並方便傳輸。程式可自訂 CSV、Excel 檔案路徑及更新範圍,多種儲存格式與應用場景,如讀取 TXT 檔案、保留 Excel 巨集公式及設定排程自動執行等。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
對於程式卡頓的問題,如何分析程式碼占用多少記憶體,如何釋放或改寫,可以先用python內建的tracemalloc模組來追蹤 Python 分配的記憶體區塊。 本文將介紹最簡單的用法,來分析一段程式碼占用了多少記憶體。 結果呈現 印出當前使用的記憶體,與峰值記憶體使用量。 程式範例 i
Thumbnail
對於程式卡頓的問題,如何分析程式碼占用多少記憶體,如何釋放或改寫,可以先用python內建的tracemalloc模組來追蹤 Python 分配的記憶體區塊。 本文將介紹最簡單的用法,來分析一段程式碼占用了多少記憶體。 結果呈現 印出當前使用的記憶體,與峰值記憶體使用量。 程式範例 i
Thumbnail
牽涉到的工具:wsl2 + anaconda + jupyter-nootbook
Thumbnail
牽涉到的工具:wsl2 + anaconda + jupyter-nootbook
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
歡迎來到我們的Windows教學!在這裡,你將學習如何有效使用Windows操作系統。我們將探索各種基本操作,如文件管理、桌面設置、程式安裝和系統設置。無論你是新手還是希望深入了解Windows的使用者,我們的教學內容都能夠幫助你提升操作技能,使你在日常使用和工作中更加流暢和高效。立即加入我們,開啟
Thumbnail
歡迎來到我們的Windows教學!在這裡,你將學習如何有效使用Windows操作系統。我們將探索各種基本操作,如文件管理、桌面設置、程式安裝和系統設置。無論你是新手還是希望深入了解Windows的使用者,我們的教學內容都能夠幫助你提升操作技能,使你在日常使用和工作中更加流暢和高效。立即加入我們,開啟
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
本文詳細介紹Windows cmd指令的應用,並提供了例說明及追加說明,用戶可以學習如何使用cmd指令對檔案進行處理、選取所需的內容,以及擴展運用到其他類型的檔案,最後還介紹了cmd設計完成後的應用和自動化執行方式。
Thumbnail
本文詳細介紹Windows cmd指令的應用,並提供了例說明及追加說明,用戶可以學習如何使用cmd指令對檔案進行處理、選取所需的內容,以及擴展運用到其他類型的檔案,最後還介紹了cmd設計完成後的應用和自動化執行方式。
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News