linux應用問題分析命令
1. 描述
應用問題分析方式及命令有很多,一般都結合著使用,今天主要介紹下:
(1)top命令,實時檢視伺服器資源使用情況,類似windows下的資源管理器;
(2)tail命令,實時重新整理檢視日誌命令。
2. top命令
top命令是Linux下常用的效能分析工具,能夠實時顯示系統中各個程序的資源佔用狀況。
2.1 命令用法
top //預設每隔5秒,顯示所有程序的資源佔用情況 top -d 2 //每隔2秒,顯示所有程序的資源佔用情況 top -c //每隔5秒,顯示所有程序的資源佔用情況,-c重點是能看到命令列引數名稱(比如java專案,不加-c的話只有java,增加-c的話,能看到具體執行引數,i'm 軟體老王)
2.2 top顯示資訊說明
(1)第一行就不說了,沒啥意思;
(2)第二行, 顯示的是程序彙總資訊,其中:
total 程序總數
running 正在執行的程序數
sleeping 睡眠的程序數
stopped 停止的程序數
zombie 殭屍程序數
(3)第三行,顯示的是cpu使用情況,其中:
0.2% us 使用者空間佔用CPU百分比 0.2% sy 核心空間佔用CPU百分比 0.0% ni 使用者程序空間內改變過優先順序的程序佔用CPU百分比 99.6% id 空閒CPU百分比 0.0% wa 等待輸入輸出的CPU時間百分比 0.0%hi:硬體CPU中斷佔用百分比 0.0%si:軟中斷佔用百分比 0.0%st:虛擬機器佔用百分比
注意:可以在top命令下按 “1”,就可以把第三行展開(比如4個cpu展開4行),檢視各個cpu佔比情況。
(4)第四行和第五行,顯示的是記憶體使用情況,其中:
Mem:
total 實體記憶體總量
free 空閒記憶體總量
used 使用的實體記憶體總量
buffer 用作核心快取的記憶體量
Swap:
total 交換區總量
free 空閒交換區總量
used 使用的交換區總量
avail Mem 有效記憶體
(5) 第六行,顯示的是具體使用者及程序使用cpu及記憶體情況,其中:
PID 程序id USER Real user name PR 優先順序 NI nice值。負值表示高優先順序,正值表示低優先順序 VIRT 程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES RES 程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA SHR 共享記憶體大小,單位kb S 程序狀態(D=不可中斷的睡眠狀態,R=執行,S=睡眠,T=跟蹤/停止,Z=殭屍程序) %CPU 上次更新到現在的CPU時間佔用百分比 %MEM 程序使用的實體記憶體百分比 TIME 程序使用的CPU時間總計,單位秒 COMMAND 命令名/命令列
特別注意:需要注意的是第三行的%cpu跟第六行的cpu有區別的。
其中第三行的cpu(%)表示的是 所有使用者程序佔用整個cpu的平均值,由於每個核心佔用的百分比不同,所以按平均值來算比較有參考意義,而第六行的%CPU顯示的是程序佔用一個核的百分比,而不是整個cpu(4核)的百分比,有時候可能大於100,那是因為該程序啟用了多執行緒佔用了多個核心(i’m 軟體老王),所以有時候我們看該值得時候會超過100%,但不會超過總核數*100。
3. tail實時檢視日誌命令
3.1 實時檢視日誌檔案
(1)描述:當需要定位或者檢視問題的時候,需要實時跟蹤日誌。
(2)命令用法
tail -f test.log
(3)tail命令解析
-f 迴圈讀取
-q 不顯示處理資訊
-v 顯示詳細的處理資訊
-c<數目> 顯示的位元組數
-n<行數> 顯示行數
–pid=PID 與-f合用,表示在程序ID,PID死掉之後結束.
-q, –quiet, –silent 從不輸出給出檔名的首部
-s, –sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒
3.2 清空檔案
(1)描述:有時候日誌或者檔案內容有點多了,不方便檢視,需要清空,可以使用copy後再刪除,但是有點麻煩,可以使用echo直接清空。
(2)命令用法
echo > nohup.out
中間空格要不要都可以
(3)echo用法示例
a. 列印到控制檯
echo I am 軟體老王
echo "I am 軟體老王"
b. 列印內容到檔案
touch test.txt
echo 軟體老王 > test.txt
c. 追加內容到檔案
echo 是帥哥 >> test.txt
I’m 「軟體老王」,如果覺得還可以的話,關注下唄,後續更新秒知!歡迎討論區、同名公眾號留言交流