1. 程式人生 > >監控cpu、記憶體 <shell>

監控cpu、記憶體 <shell>

獲取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