linux應用問題分析命令
- 2019 年 10 月 3 日
- 筆記
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 「軟件老王」,如果覺得還可以的話,關注下唄,後續更新秒知!歡迎討論區、同名公眾號留言交流!