1. 程式人生 > 實用技巧 >top 命令詳解

top 命令詳解


top命令


top命令
[root@fpm_nginx /app]# top
top - 12:19:58 up  3:45,  1 user,  load average: 0.00, 0.02, 0.05
Tasks:  91 total,   1 running,  90 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995896 total,   695140 free,    94524 used,   206232 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   731568 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                          
  6370 root      20   0  573936  17236   6096 S  0.3  1.7   0:05.52 tuned                            
  9977 root      20   0  161892   2172   1548 R  0.3  0.2   0:00.73 top      
  
第一行:
top - 12:19:58 up  3:45				# 啟動了3小時45分鐘,當前時間系統時間-12:19:58
1 user							 	# 同時線上的使用者
load average: 0.00, 0.02, 0.05			# 伺服器的負載,1min的負載、5min的負載、15min的負載

第二行:
Tasks:  91 total					# 當前有91個工作任務
1 running							# 1個正在執行的
90 sleeping							# 90個在休眠的
0 stopped							# 沒有被停止的
0 zombie							# 沒有殭屍程序

第三行:
%Cpu(s):  0.3 us,  0.3 sy			# 使用者使用cpu的百分比
		us		user		# 使用者態
		sy		system		# 核心態

ni									# 優先順序
99.3 id								# cpu空閒程度
0.0 wa								# 等待的狀態的程序佔cpu的百分比
0.0 hi								# 硬中斷
0.0 si								# 軟中斷
0.0 st								# 虛擬機器佔用物理機的百分比

什麼是中斷


中斷是指計算機執行過程中,出現某些意外情況需主機干預時,機器能自動停止正在執行的程式並轉入處理新的程式,處理完畢後又返回原被暫停的程式繼續執行。


什麼是軟中斷呢?


​ 軟中斷和硬中斷都有一個共同的特點,都會中斷當前操作,但是呢又有所區別,軟中斷當在進行一個任務的時候來了一個新的任務,就將先停止當前的任務,然後立馬將新的任務放入記憶體當中,延遲處理新任務,最後此 任務交由執行緒來進行處理。
​ 為了滿足實時系統的要求,中斷處理應該是越快越好。linux為了實現這個特點,當中斷髮生的時候,硬中斷處理那些短時間就可以完成的工作,而將那些處理事件比較長的工作,放到中斷之後來完成,也就是軟中斷 (softirq)來完成。


什麼是硬中斷呢


​ 同樣在執行一個程序的時候,又有新的任務請求訪問,cpu會立馬對當前程序進行處理,但是呢新的程序只能處於等待,等待上程序結束之後,才能對新程序進行處理
​ 由與系統相連的外設(比如網絡卡、硬碟)自動產生的。主要是用來通知作業系統,系統外設狀態的變化。比如當網絡卡收到資料包的時候,就會發出一箇中斷。我們通常所說的中斷指的是硬中斷(hardirq)。

top-的使用方法


[root@fpm_nginx ~]# yum -y install htop
htop
top

-d		# 指定動態變化時間
-p		# 檢視指定pid的程序
-u		# 檢視指定使用者的程序
-b		# 輸出完整的內容
	top -d1  -b -n2 >top.txt
-n		# 指定次數

# top的快捷鍵
h		# 檢視幫助
z		# 高亮顯示
1 		# 顯示所有cpu
s		# 設定重新整理時間
b		# 高亮顯示處於R狀態的程序
M		# 按記憶體百分比排序輸出
P		# 按CPU使用百分比排序輸出
R		# 對排序進行反轉
f		# 自定義顯示欄位
k		# kill掉指定的pid程序
W		# 儲存top環境設定 ~/.toprc
B		#  加粗
q		# 退出

PID 	# 程序id
USER      # 使用者
PR  	# 優先順序
NI    	# nice值
VIRT    # 虛擬記憶體
RES    # 真實記憶體
SHR 	# 共享記憶體
S 		# 程序的狀態
%CPU	# 佔用cpu的百分比
%MEM 	# 佔用記憶體的百分比
TIME+ 	# 程序執行時間
COMMAND		# 程序執行的命令