Linux Java常用命令

Linux

top 刷新打印當前佔比最高進程

-c :顯示進程完整路徑 -p:後接進程號打印進程信息 -H:線程模式,配合-p使用查看進程下線程佔比 top之後

  • 按m : 按內存使用排序
  • 按c : 按CPU使用排序
  • 按f : 調整展示列及列順序

printf "%x" 線程id 將線程id轉換爲16進制配合top及jstack 使用查找具體代碼

free 打印當前資源佔用情況

free -h:以方便閱讀的方式展示資源單位

PS 打印進程信息

參數繁多建議使用man ps查看文檔 常用的打印格式有兩種 ps -ef:包含用戶,進程id,CPU使用佔比等 ps aux:除了上述還包含內存佔比

好用的命令

# 打印內存使用前十的進程
ps axo %mem,pid,euser,cmd | sort -nr | head -10
# 打印cpu使用前十的進程
ps -aeo pcpu,user,pid,cmd | sort -nr | head -10

grep [選項] [參數] 查找符合條件的字符串

通常在一個查詢命令後通過"|"連接grep命令過濾數據 -A:查看匹配字符後n行 -B:查看匹配字符前n行 -E: 使用正則過濾

JAVA

jinfo [選項] 進程id

-flags : 查看所有jvm參數設置,例如內存大小等 -sysprops : 查看進程對應應用詳情

jstat [選項] 進程id 時間間隔毫秒毫秒 打印次數

-gcutil : 顯示垃圾收集信息

jmap [選項] 進程id

-heap : 打印堆統計信息 -dump:導出堆棧數據至文件, jmap -dump:format=b,file=<fileName> -histo:live:打印存活對象統計 查看堆內對象的分佈 Top 50

jmap -histo:live 30628 | sort -n -r -k2 | head -n 50

jstack [選項] 進程id

打印棧信息 查找進程下某個線程棧信息

jstack  進程id | grep -A 10 線程id

參數

參數 說明
-Xms1G 初始堆內存大小
-Xmx1G 最大堆內存大小
-XX:+PrintGCDetails 打印gc詳細日誌
-XX:+PrintGCDateStamps 打印GC日期格式時間戳
-Xloggc:完整文件路徑 gc日誌文件設置
-XX:HeapDumpOnOutOfMemoryError 當內存溢出時生成堆快照
-XX:HeapDumpPath=目錄 指定生成堆快照目錄

參考資料

https://developer.aliyun.com/article/727625?spm=5176.8068049.0.0.7f0d6d19%20WJXuiS#slide-4 https://g-ghy.github.io/linux-command/c/ps.html

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