Java問題排查常用Linux命令

(1)ping :

功能是檢測主機,執行ping指令會使用ICMP傳輸協議,發出要求迴應的信息,若遠端主機的網絡功能沒有問題,就會迴應該信息,因而得知該主機運作正常。 

 

(2)  netstat:
顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用於檢驗本機各端口的網絡連接情況。
·netstat –s
本選項能夠按照各個協議分別顯示其統計數據。如果我們的應用程序(如Web瀏覽器)運行速度比較慢,或者不能顯示Web頁之類的數據,那麼我們就可以用本選項來查看一下所顯示的信息。我們需要仔細查看統計數據的各行,找到出錯的關鍵字,進而確定問題所在。
·netstat –e
本選項用於顯示關於以太網的統計數據。它列出的項目包括傳送的數據報的總字節數、錯誤數、刪除數、數據報的數量和廣播的數量。

·netstat –a
本選項顯示一個所有的有效連接信息列表,包括已建立的連接(ESTABLISHED),也包括監聽連接請(LISTENING)的那些連接。
·netstat –n
顯示所有已建立的有效連接。

 

(3)hostname
顯示或設置系統的主機名;如果無任何選項和主機名,則用於顯示系統的主機名。

在看這個命令的時候想起了windows中修改host文件來進行測試,這裏順便了解了一下host文件的作用。

Hosts文件是一個純文本的文件,用普通的文本編輯軟件如記事本等都能打開。


Hosts文件的格式:
這個文件包含IP地址到HOST name(主機名)的映射關係.每一條獨自佔有一行.
IP地址應該放在第一位,後面應該緊跟着Host name. IP地址與Host name之間應該被最少一個空格隔開.對於每行的映射說明,用“#”分割後用文字說明。
Hosts文件在Windows中的用途:
訪問某個網站通常是根據域名訪問,比如:http://www.9usb.net.我們在瀏覽器中輸入以上域名後,後臺就首先通過DNS服務器把網絡域名www.9usb.net解析成173.XXX.XXX.XXX的IP地址後,我們的計算機才能訪問。要是對於每個域名請求我們都要等待域名服務器解析後返回IP信息,這樣訪問網絡的效率就會降低。
Hosts文件起作用的地方就是在由域名轉換成IP的過程中。hosts文件在本地保存了一個域名和IP地址的映射,能提高解析效率。Windows系統在進行DNS請求以前,Windows系統會先檢查Hosts文件中是否有這個地址映射關係,如果有則調用這個IP地址映射,如果沒有再向已知的DNS服務器提出域名解析。
Hosts的請求級別比DNS高。


Host文件在具體使用中的作用
1.繞開DNS請求,節省域名解析時間
對於要經常訪問的網站,我們可以通過在Hosts中配置域名和IP的映射關係,這樣當我們輸入域名計算機就能很快解析出IP,而不用請求網絡上的DNS服務器。在本地進行域名解析比請求DNS服務器進行轉換要省時間,這大大加快了訪問速度。
2.方便局域網用戶
通常局域網一般不會架設DNS服務器,訪問某些服務要輸入難記的IP地址,這就比較不方便。現在可以分別給這些服務器取個容易記住的名字,然後在Hosts中建立IP映射,這樣以後訪問的時候我們輸入這個服務器的名字就OK了。
3、屏蔽網站和解屏蔽網站
4.順利連接系統

 

(4)uptime

Linux系統中的uptime命令主要用於獲取主機運行時間和查詢linux系統負載等信息。
uptime命令可以顯示系統已經運行了多長時間,信息顯示依次爲:現在時間、系統已經運行了多長時間、目前有多少登陸用戶、系統在過去的1分鐘、5分鐘和15分鐘內的平均負載。
uptime命令用法十分簡單:直接輸入uptime即可.

例如: 17:07:22 up 79 days, 17:57,  1 user,  load average: 0.08, 0.08, 0.02

 

(5)TOP

TOP顯示的內容詳解

 

在TOP命令運行的過程中,點擊下面的鍵,可以進行進一步的顯示。

 

(1)u:指定顯示用戶進程。

(2)1 :顯示每個CPU的統計信息。

(3)P:按%CPU使用率排行。shift+p。

(4)M:按%MEM排行。shift+m。

(5)<Space>:立即刷新。

(6)-H : 顯示線程。當這個設定開啓時,將顯示所有進程產生的線程。

(7)-p : 監控指定的進程。當監控多個進程時,進程ID以逗號分隔。這個選項只能在命令行下使用。

 

 

—————————————————————————————

 

  • 查看java進程中各個線程佔用CPU以及內存情況

top -H -p `pgrep Java -u admin`

  • 加入看到8440這個線程有異常,進制轉換

printf ‘0x%x\n’ 8440

  • 看這個線程在做什麼事情

sudo -u admin /opt/taobao/java/bin/jstack `pgrep java -u admin` | grep -C 20 0x20f8 –color

—————————————————————————————

(6)sar

sar 的主要作用:

主要負責收集、彙報與存儲系統運行信息的。有兩個參數非常非常常用,就是“時間間隔”和“輸出次數”。默認輸出CPU的信息,但是內存、Load、IO的情況都可以查看

1、把sar輸出的信息保存到文件中,只要  -o filename即可,不過在看次文件的時候,需要sar  -f  filename   否則通過cat看到的是亂碼

2、CPU是多核的情況下,查看每一下的情況已經統計情況,

    sar -P ALL   顯示每一核的情況已經總體情況

    sar -P 數字  顯示特定CPU的情況

 

   

3、查看歷史的sar的情況

     sar   -u(r/q/) -f    /var/log/sa/sa01    最後一個爲具體的日誌(sa+日期中的天數)

4、sar -q  查看load的情況

 

    

5、sar -r  查看內存

 

 

6、sar -n  查看網絡情況

 

 

 

 

 

 

(7)vmstat

 

(8)ps

 

(9)grep/egrep/fgrep


(10)awk

 

(11)kill

 

(12)mapstat

 

(13)iostat

 

(14)df/du

 

(15)

 

系統配置相關:

查看內核/操作系統/CPU信息: uname -a

查看操作系統版本: head -1 /etc/issue

查看網卡信息:cat  /sbin/ifconfig

查看cpu配置: cat /proc/cpuinfo

查看mem配置:cat /proc/meminfo

查看環境變量 資源: env 

查看各分區使用情況:  df -h

查看指定目錄的大小: du -sh

查看系統負載 磁盤和分區: cat /proc/loadavg 

查看掛接的分區狀態:  mount | column -t 

查看hosts配置:cat
 /etc/hosts

查看所有網絡接口的屬性: ifconfig 

查看路由表: route -n

查看tcp協議配置(ipv4):  /proc/sys/net/ipv4


性能分析相關工具:

ps,pstree: 命令是系統分析最常用的基本命令,ps命令提供了一個正在運行的進程的列表,列出進程的數量取決於命令所附加的參數。

uptime: 查看系統運行時間、用戶數、負載

top :實時顯示cpu負載、進程資源佔用

vmstat:整體性能監控,cpu,mem,頁面io等。

free: free命令顯示系統的所有內存的使用情況,包括空閒內存、被使用的內存和交換內存空間。Free命令顯示也包括一些內核使用的緩存和緩衝區的信息。
-m  以M形式展示數據
-g 以G形式展示數據


pmap: pmap命令顯示一個或者多個進程使用內存的數量,你可以用這個工具來確定服務器上哪個進程佔用了過多的內存從而導致內存瓶頸。

iostat:iostat是sysstat包的一部分。Iostat顯示自系統啓動後的平均CPU時間(與uptime類似),它也可以顯示磁盤子系統的使用情況,iostat可以用來監測CPU利用率和磁盤利用率。

sar: sar也是sysstat安裝包的一部分。sar命令用於收集、報告和保存系統的信息。

mpstat: mpstat命令也是sysstat包的一部分。Mpstat命令用於監測一個多CPU系統中每個可用CPU的情況。Mpstat命令可以顯示每個CPU或者所有CPU的運行情況

ulimit: 可以通過ulimit來控制系統資源的使用。

java應用性能分析:

jmap(配合jhat分析heapdump)、jstat、jconsole、jvisualvm、jprofiler、visualGC等等多種多樣。

查看進程和端口號相關netstat:

Netstat 用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用於檢驗本機各端口的網絡連接情況。
通過netstat可以查看網絡連接、端口號等佔用情況

查看TCP/UDP端口:netstat -tuoln

查看進程名運行的端口號:netstat -anp|grep 進程名
當需要監控某個服務的端口號時可以首先獲取該服務的監聽端口號,如tomact進程
netstat -anp|grep tomcat

 根據端口查看運行的進程:
netstat -anp|grep 端口號  或  lsof -i:端口號
通常用於查看某個端口號下建立的連接數,如8083端口號下的連接數統計:
netstat -anp|grep:8083|wc -l 

netstat -tln 查看服務監聽端口

查看進程   ps aux

查看指定服務的進程號,如tomcat服務: ps aux|grep tomcat

結束進程   kill -15 pid 立即釋放資源; kill -9 pid 不會立即釋放資源 

查看特定文件中特定文本的個數
egrep -o “[A-Z|a-z]\w*”“Exception” map.log | sort | uniq -c | sort –nr   

最後制定定時執行任務,合理利用空閒時間:

crontab -e: 設置計劃任務;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章