PythonをつかったPythonプロセスのCPUとメモリの使用率ロガー
簡単お手軽な特定プロセスのCPU/メモリ使用率ロガー
ちょっと必要があって、プロセスのCPUとメモリ使用率を記録するスクリプトを書いた。
あんまり需要ないかもしれないけど、あったら便利。
先のシェルスクリプトと組み合わせるとログファイルなんかも良い感じです。
スクリプト本体
#!/usr/bin/env python # -*- coding: utf-8 -*- import psutil import time import csv import sys #標準入力からのファイル名の受け取り argvs = sys.argv argc = len(argvs) if (argc < 2): saveFileName = 'NoFileName.csv' else: saveFileName = argvs[1] intervalSec = 1 val_data = [] tmp_data = [] # ヘッダ部分の作成 fh = open(saveFileName,'a') writer = csv.writer(fh) writer.writerow(['TotalMemorySize:',psutil.virtual_memory().total]) writer.writerow(['NUM_CPUS:',psutil.NUM_CPUS]) writer.writerow([]) writer.writerow(['Time','Name','pid','P.CPU_Percent','P.Memory_Percent']) fh.close() tmp_data = [] # CPUメモリの情報記録 while True: process = filter(lambda p: p.name == "python", psutil.process_iter()) fh = open(saveFileName,'a') writer = csv.writer(fh) # プロセスごとの情報取得 for i in process: retval = [time.time(),i.name,i.pid,i.get_cpu_percent(interval=0),i.get_memory_percent()] print retval writer.writerow(retval) # データの書き出し fh.close() time.sleep(intervalSec)
参考サイト
ありがとうございまっす!