監控cpu、記憶體 <shell>
阿新 • • 發佈:2018-11-19
獲取cpu、記憶體結果
pid=$1 #獲取程序pid echo $pid interval=1 #設定採集間隔 while true do echo $(date +"%y-%m-%d %H:%M:%S") >> proc_memlog.txt cat /proc/$pid/status|grep -e VmRSS >> proc_memlog.txt #獲取記憶體佔用 cpu=`top -b -n 1 -p $pid|tail -2|head -1|awk '{ssd=NF-3} {print $ssd}'` #獲取cpu佔用 echo "Cpu: " $cpu >> proc_memlog.txt echo $blank >> proc_memlog.txt sleep $interval done
結果排序
cat proc_memlog.txt |grep Cpu |awk '{print $2}' | sort -nbr
此處cpu是單核的cpu大小,因此超過100%的意思就是跑滿了單核。
邏輯核和物理核
物理核就是一般說的幾核cpu,其為物理核心。一般都是2、4、8核。伺服器一般為32核。利用cat /proc/cpuinfo檢視物理核。
邏輯核則是因超執行緒技術,將物理核進行虛擬。當計算機沒有開啟超執行緒時,邏輯CPU的個數就是計算機的核數。而當超執行緒開啟後,邏輯CPU的個數是核數的兩倍。
任務繫結cpu
taskset -c 0,10 ./bind_core