在linux中對vbox的cpu使用率監控

2021-07-22 16:47:07 字數 2067 閱讀 7036

目前,每天中午cpu的負載都會突然增加,通過htop命令檢視到此時的vbox的cpu佔用率一致蠻高的,便計畫對vbox的cpu使用率進行計畫性監控,最開始的想法很簡單就是通過呼叫top命令來進行cpu使用率的監控,但監控了好幾天,發現值一直為0,而htop中值是一直有變化的,正常的結果也不應該為0,可惜,我沒法對htop進行重定向,便計畫通過/proc//stat檔案中的資料進行監控。可是當讀取/proc//stat檔案內容後發現第14,15,16,17列的值完全沒有變化(用於計算cpu使用率),預估top的值沒有變化也和此有關,但htop的值一直有變化,而且顯示的不止乙個程序,故猜想htop讀取的是執行緒值,所以開始讀取/proc//task//stat檔案內容,發現所需列的值有發生變化,而且一秒內變化的值和htop顯示的值類似(此段內容,個人沒法確定正確與否),故此,讀取執行緒cpu使用率,**如下:

import subprocess

import time

import psutil

import os

name = 'vbox_cpu_info'

verbose = true

#通過psutil讀取vboxheadless程序pid

defusepsutil

(): pidlist = psutil.pids()

processtotest = "vboxheadless"

for eachpid in pidlist:

try:

eachprocess = psutil.process(eachpid)

processname = eachprocess.name()

if(processname == processtotest):

return eachpid

except psutil.nosuchprocess,pid:

print

"no process found with pid=%s"%(pid)

#得到執行緒的cpu占用時間

defget_cpu_time

(): vboxpid = trypsutil()

currentdirs = os.listdir("/proc/%d/task/"%vboxpid)

alldirs =

timeofcpu =

for i in currentdirs:

for i in alldirs:

filename = "/proc/%d/task/%d/stat"%(vboxpid,int(i))

with open(filename, 'r') as f:

line = f.readlines()

line_str = ''.join(line)

line_split = line_str.split()

return timeofcpu

#得到執行緒id

defget_tid

(): vboxpid = trypsutil()

currentdirs = os.listdir("/proc/%d/task/"%vboxpid)

alldirs =

for i in currentdirs:

return alldirs

#得到tid和cpu used

defget_stats

(): firsttime =

lasttime =

firsttime = get_cpu_time()

time.sleep(1)

lasttime = get_cpu_time()

cpuofused = list(map(lambda x: x[0]-x[1], zip(lasttime, firsttime)))

tid = get_tid()

print zip(tid,cpuofused)

get_stats()

若需在nagios中監控,只需修改少量**即可,在此忽略,若想在collectd中監控,可參考:

linux中的cp命令

示例 複製檔案,只有原始檔較目的檔案的修改時間新時,才複製檔案 cp u v file1 file2 將檔案file1複製成檔案file2 cp file1 file2 採用互動方式將檔案file1複製成檔案file2 cp i file1 file2 將檔案file1複製成file2,因為目的檔案...

Linux中的cp命令

linux中cp命令用來賦值檔案或者目錄,其常用的命令選項如下 下面是cp命令的一些使用示例 預設情況下,cp命令賦值出來的許可權或者屬性通常 自操作者本身。比如上面在root身份在執行cp命令,將 var log wtmp賦值到 tmp wtmp,此時 tmp wtmp檔案的許可權與所屬群組已經不...

linux中的cp命令總結

cp總結 功能說明 複製檔案或目錄 語法 cp 引數 源檔案目錄 目標檔案或目錄 該命令用於將乙個或多個檔案複製到目標目錄 補充說明 cp指令用在複製檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是乙個已經存在的目錄,則它會把前面指定的所有檔案或目錄複製到該目錄中。若同時指定多個檔案或目...