天天看點

linux應用問題分析指令

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顯示資訊說明

linux應用問題分析指令

(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直接清空。

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 「軟體老王」,如果覺得還可以的話,關注下呗,後續更新秒知!歡迎讨論區、同名公衆号留言交流!

更多資訊請關注公衆号:「軟體老王」,關注不迷路,IT技術與相關幹貨分享,回複關鍵字擷取對應幹貨,本文版權歸作者軟體老王所有,轉載需注明作者、超連結,否則保留追究法律責任的權利。

linux應用問題分析指令

繼續閱讀