Linux指令學習/JVM指令

1. 測試端口是否能連通

  • telnet ip port

在這裏插入圖片描述

  • ssh -v -p port username@ip
    (-v表示是debug模式)
    在這裏插入圖片描述
  • curl ip:port
    在這裏插入圖片描述

2. 遠程登陸會話

  • 指令:ssh
  • SSH 是較可靠,專爲遠程登錄會話和其他網絡服務提供安全性的協議。
    遠程登陸ssh username@ip

3. 檢測本機的端口網絡連接情況

  • 指令:netstat
  • 檢測本機的端口連接情況,可以使用netstat
    netstat -ano | grep port

4. 查看某個進程的情況

  • 指令: ps
  • 查看某個進程的情況
    ps -ef | grep pid

5. 管道 + 正則匹配

  • 指令: 指令 | grep 正則表達式
  • grep ‘pattern‘ file pattern爲正則匹配字符串,file爲輸入文件
    最常用的是配合管道來一起使用,即前一個指令的輸出作爲輸入,然後用正則過濾,例如上面的ps -ef 就列出了所有的進程,然後 使用’|’ 作爲管道連接字符,作爲grep pid的輸入, 就找到了指定pid的進程信息。

6. 服務器上傳 / 下載文件

  • 指令:scp
  • scp [可選參數] file_source file_target

從服務器上下載或上傳文件.

上傳:
scp ./1.txt [email protected]:/usr/local/software/
下載:
scp [email protected]:/usr/local/software/1.txt .

7. cpu負載很高怎麼查看

  • 執行top -c ,顯示進程運行信息列表

  • 鍵入P (大寫p),進程按照CPU使用率排序

案例一:CPU利用率100%怎麼排查

第一步:找到最消CPU性能的進程
  1. top -c
  2. 鍵入大寫P, 進程按照CPU使用率排序
    在這裏插入圖片描述
第二步:查找進程內最耗CPU的線程
  1. top -Hp pid : 找出進程號爲pid的進程中的所有線程
  2. 鍵入大寫P,線程按照CPU使用率排序
第三步:轉換線程ID
  1. printf “%x/n” thread_id
    在這裏插入圖片描述
第四步:定位Java進程中cpu佔用率高的線程

jstack pid | grep thread_id_hex -A 需要打印的行數
下面是查看 14505進程中 “main”線程
在這裏插入圖片描述


Java相關指令

8. 打印出Java正在運行的進程

  • 指令:jps
  • 可以知道啓動了哪些進程,對應的進程號
    在這裏插入圖片描述

9. 圖形化查看內存,線程等信息

  • 指令:jconsole
  • 連接對應的進程:
    在這裏插入圖片描述
  • 連接後的界面:
    可以查看內存(GC情況),線程,類,JVM情況和加載的Bean
    在這裏插入圖片描述

10. 查看內存使用狀況( jstat )

  • jstat -gc pid
  • 用的比較少,需要用到就百度吧…

11. 分析Java線程的狀況

  • 指令:jstack thread_id
  • 打印對應線程的運行情況

12. 把當前java進程的狀態給dump下來,或查看內存信息

1. dump下來

  • 指令:jmap -dump:file=xxx pid (xxx是dump的文件名)
  • dump下來之後,需要用專門的工具來查看這個文件,有專門查看這類文件的可視化工具
    在這裏插入圖片描述

2. 查看內存信息

  • 指令:jmap -heap pid
    在這裏插入圖片描述

13. 強大的監控圖形界面

升級版jconsole, 並且能手動GC,並且可以手動直接dump,可以查看dump出來的dump文件! 很強大。

  • 指令:jvisualvm
    在這裏插入圖片描述

一個JVM參數,當出現OOM時,自動進行dump

  • 指令: -XX:+HeapDumpOnOutOfMemoryError

補充

a. 在指定文件夾下查詢指定文件

指令:find base_dir -f file_name
這裏的file_name是可以使用正則來匹配的,比如 *.txt

b. cut指令

$ cut
-d :分隔符,按列分割
-f :經過 -d 分隔後,使用 -f n 取出第 n 個列
-c :以字符爲單位取出列。 ( ps: cut -c 7- 表示以自負爲單位, 打印從第7列及其之後的字符列

示例 1:last 顯示登入者的信息,取出用戶名。

$ last
root pts/1 192.168.201.101 Sat Feb 7 12:35 still logged in
root pts/1 192.168.201.101 Fri Feb 6 12:13 - 18:46 (06:33)
root pts/1 192.168.201.254 Thu Feb 5 22:37 - 23:53 (01:16)

$ last | cut -d ' ' -f 1

示例 2:將 export 輸出的信息,取出第 12 字符以後的所有字符串。

$ export
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/home/dmtsai"
declare -x HOSTNAME="study.centos.vbird"
.....(其他省略).....

$ export | cut -c 12-

c. sort指令

排序指令:
sort

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