Linux 命令與 Java異常定位

發現阿里雲的沒有裝java,於是以此爲引子。
首先判斷是否安裝java rpm -qa | grep java 其中rpm -qa列出所有安裝的程序
在這裏插入圖片描述
| grep作用是將rpm -qa的結果作爲文本進行查詢 rpm -qa | grep java 就是查詢其中文字匹配java的行
在這裏插入圖片描述
發現沒有。於是安裝之。這裏使用yum命令進行安裝。
首先使用yum -y list java*列出所有包含java的安裝包
在這裏插入圖片描述
這裏選擇JDK8進行安裝
yum -y install java-1.8.0-openjdk.x86_64在這裏插入圖片描述
安裝完成後,使用java -version查看是否正確安裝。

top 是用來監控Linux系統狀況,比如cpu、內存的使用。
默認每三秒刷新一次。
top中 load average的意思
1.單核CPU, 數字在0.00-1.00之間正常
0.00-1.00 之間的數字表示此時路況非常良好,沒有擁堵,車輛可以毫無阻礙地通過。
1.00 表示道路還算正常,但有可能會惡化並造成擁堵。此時系統已經沒有多餘的資源了,管理員需要進行優化。
1.00以上 表示路況不太好了,如果到達2.00表示有橋上車輛一倍數目的車輛正在等待。這種情況你必須進行檢查了。
用雙核舉例,雙核的負載已經比單核提高一倍了,那多核的也是同理。

多核CPU的話,滿負荷狀態的數字爲 “1.00 * CPU核數”,即雙核CPU爲2.00,四核CPU爲4.00。
原文鏈接:https://blog.csdn.net/zhangchenglikecc/article/details/52103737

除了top 也可以使用uptime 查看load average

vmstat
vmstat -n 2 3 意味着每 2 秒採樣一次 共採樣 3 次
在這裏插入圖片描述
r是運行和等待CPU時間片的進程數,原則上單核CPU等待隊列不能超過2,多核不能超過2 * 核心數,否則表示系統壓力過大。
b 是等待資源的進程數,比如IO等待,網絡等待。
us 表示用戶進程消耗百分比,sy表示系統消耗百分比,如果us + sy > 80意味着CPU可能性能不足

mpstat -P ALL 2 3
顯示所有CPU使用情況
在這裏插入圖片描述
pidstat -u 1 -p pid 顯示每個進程使用CPU的用量分解信息
在這裏插入圖片描述
pidstat -p pid -r 2 以每2秒進行採樣。顯示pid的進程對內存的消耗
在這裏插入圖片描述
pidstat -d 2 -p pid 顯示pid進程的磁盤IO情況

free
用來查看內存,默認使用字節顯示,free -g以GB顯示 free -m以MB顯示

df
用來查看磁盤剩餘空間
df -h 以人性化的方式查看
在這裏插入圖片描述

iostate
查看IO情況

ifstate
查看網絡IO情況

ps -ef
列出所有進程和其對應的文件目錄
在這裏插入圖片描述

如果Java程序瘋狂佔用CPU,該如何定位
1、利用jps 找到 java進程號或者 ps -ef 找到這個java 進程。
2、使用ps -mp pid -o THREAD tid time
可以定位到這個進程的每個線程的CPU使用情況。其中 -o 是用戶定義的顯示列名
3、將找到的tid轉成16進制。
4、利用jstack pid | grep tid(16進制) 查看運行情況

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章