環境:
ubuntu 14.04+python2.7
功能說明:
按時間間隔持續進行cpu佔用率的檢測,當cpu負載超過%60時,進行提示,並且可以根據程序名字殺死該程序
**:
#coding:utf-8
import os
import time
print "cpu dedecting"
flag=true
while flag:
os.system(r"top -n 1 >file1.txt")#執行top命令,將結果存入file1.txt
os.system(r"grep 'cpu(s)' file1.txt >file3.txt")#將cpu執行比列所在的行提取出來,放入file3.txt
import tkinter
import tkmessagebox
def show():
tkmessagebox.showinfo(title='warning', message='your cpu is overload,please kill some unnessary processes')
file3=open("file3.txt",'r')
for line in file3.readlines():
a=line.strip()
for line2 in a.split(" ")[1:2]:#對於每一行,提取出cpu占用的百分比
if float(line2)>60: #將str型別強制轉換成float,並進行比較,超出彈框
show()
print "目前正在執行的程序:\n"
os.system("ps")
os.system("ps 1> file5.txt")
kill_one=raw_input("input the process you want to kill\n")
#os.system(r"grep "+kill_one +"file5.txt >file6.txt")
str2="grep "+kill_one +" file5.txt >file6.txt"
print str2
os.system(str2)
file6=open("file6.txt",'r')
for line3 in file6.readlines():
b=line3.strip()
for line4 in b.split(" ")[0:1]:
str6="kill -9 " +line4
os.system(str6)
print str6
break
file3.close()
print "end"
time.sleep(20)
自我總結:
這個指令碼很憋足,好歹是實現了簡易功能,但是不足的地方是:1使用不便,應該是加上影象化操作介面,我學學著一塊,後期完成乙個easy+的任務管理器樣子的圖形介面 2.就是在python中呼叫shell命令,總感覺怪怪的,但是暫時沒有想到更好的解決辦法。
遇到的問題:
在程式設計過程中有個問題,就是在提取列的時候,本來打算用awk但是,直接使用awk進行列提取沒有問題,在python中呼叫就出現問題,提醒出乎意料的字元'.',查資料也沒弄明白~此路不通記載下來。後期就使用split函式進行列提取。
效能計數器之CPU
processor processor time 閥值 處理器的閥值一般設為85 含義 這個計數器是處理器活動的主要指標。高數值並不一定是壞事,但是如果其他處理器相關的計數器 比如 privileged time 或者processor queue length 線性增加的話,高cpu使用率就值得調...
伺服器效能之CPU
有時我們會發現開發的應用在cpu核數一樣的虛擬伺服器上效能表現出較大的差異,這是為什麼呢?上次有童鞋問到我這樣乙個問題,所以我根據自己的理解給大家簡說下!cpu生產商為了提高cpu的效能,通常做法是提高cpu的時鐘頻率和增加快取容量。不過目前cpu的頻率越來越快,如果再通過提公升cpu頻率和增加快取...
Zabbix監控之郵件告警python指令碼
1 安裝郵件傳送工具mailx yum y install mailx2 檢視版本 root zabbix 100 101 mailx v 12.5 7 5 10 3 配置maix vi etc mail.rc set from 1111 qq.com set smtp smtp.exmail.qq...