1. 程式人生 > >top命令詳解之深入了解CPU

top命令詳解之深入了解CPU

綁核 top cpu






top









taskset











top命令之你不一定懂的cpu顯示信息

http://www.cnblogs.com/wjoyxt/p/4918742.html




理解CPU steal time


http://blog.csdn.net/jessysong/article/details/73571878



http://www.cnblogs.com/menkeyi/p/6732020.html



是誰動了我的CPU!

http://www.csdn.net/article/2012-12-10/2812662-shei-dong-cpu




Linux下的綁核命令——taskset

所謂綁核,其實就是設定某個進程/線程與某個CPU核的親和力(affinity)。設定以後,Linux調度器就會讓這個進程/線程只在所綁定的核上面去運行。

但並不是說該進程/線程就獨占這個CPU的核,其他的進程/線程還是可以在這個核上面運行的。如果想要實現某個進程/線程獨占某個核,就要使用cpuset命令去實現。

其實,很多情況下,為了提高性能,Linux調度器會自動的實現盡量讓某個進程/線程在同樣的CPU上去運行。所以,除非必須,我們沒有必要顯式的去進程綁核操作。


http://time-track.cn/taskset-command.html



我這個是在啟動虛擬機之後,在虛擬機中跑DPDK,測試結果很不理想,然後我的領導說可以做CPU的隔離核綁定,然後做了之後發現確實效果有所提升。所以寫一下小結。僅供大家參考。

1、首先創建隔離核,在系統啟動的時候在INTEL_IOMMU=OFF那一行最後添加上

isolcpus=2,3,4,5,6 隔離出5個核

2、系統啟動,檢查host上是否隔離成功,命令如下:

# ps –eLo ruser,pid,ppid,lwp,psr,args | awk ‘{if($5==1) print $0}’

# ps –eLo ruser,pid,ppid,lwp,psr,args | awk ‘{if($5==2) print $0}’

# ps –eLo ruser,pid,ppid,lwp,psr,args | awk ‘{if($5==3) print $0}’

# ps –eLo ruser,pid,ppid,lwp,psr,args | awk ‘{if($5==4

) print $0}’通過查看線程確定是否隔離,如果隔離成功,則只有幾個線程。

3、啟動虛擬機之後,查看qemu的線程

# ps –eLo ruser,pid,ppid,lwp,psr,args | grep qemu | grep –v grep

4、綁定qemu的進程,綁定核

# taskset –p 0x4 28423

# taskset –p 0x8 28424

5、查看QEMU綁定是否生效

# ps –eLo ruser,pid,ppid,lwp,psr,args | grep qemu | grep –v grep

6、查看cpu2/3/4/5上運行的線程

# ps –eLo ruser,pid,ppid,lwp,psr,args | awk ‘{if($5==2) print $0}’


沒什麽技術含量,僅供大家參考。




linux下進程綁定cpu情況查看

http://blog.csdn.net/u013920085/article/details/51085315



Linux進程或線程綁定到CPU

編譯運行之後,輸入命令top -p 進程id,輸入f,輸入j,輸入回車,輸入H,可以看到主線程一直保持在cpu0,一個線程在cpu12之前切換,另一個線程在cpu34之間切換。


http://www.linuxidc.com/Linux/2015-04/116867.htm



Linux編程之《進程/線程綁定CPU》


http://www.cnblogs.com/highway-9/p/5494977.html


為進程綁定CPU

http://purplegrape.blog.51cto.com/1330104/1252197/



1.taskset

taskset用來查看和設定“CPU親和力”,說白了就是查看或者配置進程和cpu的綁定關系,讓某進程在指定的CPU核上運行,即是“綁核”。


2.taskset的用法

(1)顯示進程運行的CPU

taskset -p pid

註意,此命令返回的是十六進制的,轉換成二進制後,每一位對應一個邏輯CPU,低位是0號CPU,依次類推。如果每個位置上是1,表示該進程綁定了該CPU。例如,0101就表示進程綁定在了0號和3號邏輯CPU上了

(2)綁核設定

taskset -pc 3 pid 表示將進程pid綁定到第3個核上(註:不用將3弄成二進制的)

taskset -c 3 command 表示執行command命令,並將command啟動的進程綁定到第3個核上。



st 的全稱是 Steal Time ,就是 Xen Hypervisor 分配給運行在其它虛擬機上的任務的實際  時間。
%st(Steal time) 是當 hypervisor 服務另一個虛擬處理器的時候,虛擬  等待實際  的時間的百分比。
Steal 值比較高的話,需要向主機供應商申請擴容虛擬機。服務器上的另一個虛擬機擁有更大更多的 CPU 時間片,需要申請升級以與之競
爭。另外,高 steal 值也可能意味著主機供應商在服務器上過量地出售虛擬機。如果升級了虛擬機, steal 值還是不降的話,應該尋找另一家服務供應商。
低 steal 值意味著應用程序在目前的虛擬機上運作良好。因為虛擬機不會經常地為了 CPU 時間與其它虛擬機激烈競爭,虛擬機會更快地響應。主機供應商沒有過量地出售虛擬服務,絕對是一件好事情。


本文出自 “運維自動化” 博客,請務必保留此出處http://shower.blog.51cto.com/4926872/1972820

top命令詳解之深入了解CPU