大量的進程運行時,會導致電腦卡頓,最高效的方式是重啓電腦。但是 還要重頭再啓動很多的軟件和服務,如何精確定位哪個進程的那一條線程?
ps:獲取學習資料 添加qq: 1184905186
windows
- 任務管理器可以查看進程和線程數,也可以用來殺死進程
- tasklist 查看進程
- taskkill 殺死進程
舉個例子:
linux
- ps -fe 查看所有進程
- ps -fT -p 查看某個進程(PID)的所有線程
- kill 殺死進程
- top 按大寫 H 切換是否顯示線程
- top -H -p 查看某個進程(PID)的所有線程
java
- jps 命令查看所有 Java 進程
- jstack 查看某個 Java 進程(PID)的所有線程狀態
- jconsole 來查看某個 Java 進程中線程的運行情況(圖形界面)
jconsole 遠程監控配置
需要以如下方式運行你的 java 類
java -Djava.rmi.server.hostname=`ip地址` -Dcom.sun.management.jmxremote -
Dcom.sun.management.jmxremote.port=`連接端口` -Dcom.sun.management.jmxremote.ssl=是否安全連接 -
Dcom.sun.management.jmxremote.authenticate=是否認證 java類
- 修改 /etc/hosts 文件將 127.0.0.1 映射至主機名
如果要認證訪問,還需要做如下步驟
- 複製 jmxremote.password 文件
- 修改 jmxremote.password 和 jmxremote.access 文件的權限爲 600 即文件所有者可讀寫
- 連接時填入 controlRole(用戶名),R&D(密碼)
taskkill 殺死進程
不知道參數是什麼意思? 簡單:控制檯輸入
TASKKILL /?
就可以看到各個參數的意思。