導航:首頁 > 編程語言 > linuxjava查看線程

linuxjava查看線程

發布時間:2023-02-09 22:52:10

linux查看java線程,怎麼回收無用的線程

1. 先進行一次thread mp (jstack -m <pid> 或者 kill -3 <pid> , 或者使用jconsole, jvisualvm等) (jstack 命令有一些選項不是每個平台都支持的, jconsole jvisualvm都是有界面的, 如果你要運行一般需要配置agent或者重定向display到某台機器).
2. 然後過了一段時間再做一次, 如果發現同一個thread NID 還是停在同一個地方, 基本上可以懷疑是否掛住了(一般只需要查看你業務相關的stack信息就行了).
3. 還有一種就是你的日誌很詳細, 也可以看到一些的情況(列印到某個地方就卡住了, 呵呵).

❷ LINUX系統下查看JAVA的哪個線程佔用CPU高

1、查看物理CPU的個數[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
1
2、查看邏輯CPU的個數
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "processor"|wc -l
4
3、查看CPU是幾核(即,核心數)
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "cores"|uniq
cpu cores : 4
4、查看CPU的主頻
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep MHz|uniq
cpu MHz : 2499.982
5、當前操作系統內核信息
[root@MysqlCluster01 ~]# uname -a
Linux MysqlCluster01 2.6.32-431.20.3.el6.x86_64 #1 SMP Thu Jun 19 21:14:45 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
6、當前操作系統發行版信息
[root@MysqlCluster01 ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
7、內存使用情況
[root@MysqlCluster01 ~]# free -m
total used free shared buffers cached
Mem: 7863 2738 5125 0 141 835
-/+ buffers/cache: 1761 6102
Swap: 3967 0 3967

❸ LINUX系統下查看JAVA的哪個線程佔用CPU高

以下方法在LINUX下執行通過:
1.先定位佔用cpu高的進程
top
2.使用以下命令
ps p 14766 -L -o pcpu,pid,tid,time,tname,stat,psr | sort -n -k1 -r
其中14766是剛才1中cpu佔用率高的進程pid
3.2.4 32525 32537 01:58:41 ? Sl 6
0.8 32525 1771 00:43:12 ? Sl 0
0.8 32525 1769 00:39:46 ? Sl 0
0.7 32525 12324 00:33:36 ? Sl 0
0.5 32525 1772 00:27:50 ? Sl 0
0.5 32525 1768 00:25:45 ? Sl 0
0.4 32525 30760 00:19:13 ? Sl 0
0.4 32525 1773 00:22:36 ? Sl 0
0.4 32525 1770 00:20:25 ? Sl 0
0.3 32525 32385 00:00:10 ? Sl 0
0.1 32525 31668 00:00:03 ? Sl 0
0.1 32525 31667 00:00:03 ? Sl 0
0.1 32525 1790 00:07:10 ? Sl 1
其中第3個結果就是此進程中有問題的線程nid
4.通過jstack命令mp出堆棧
"AppController_ThreadPool_L2_Pool Thread" daemon prio=10 tid=0x0000000051c2b000 nid=0x7bb3 in Object.wait() [0x000000005e3c5000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.company.threadpool.ThreadPoolImpl$PoolThread.run(ThreadPoolImpl.java:142)
- locked <0x00002aaca30341a8> (a org.company.threadpool.ThreadPoolImpl$PoolThread)
其中的nid就是線程的編碼,只不過是經過了16進制的轉換。
即十進制的31776對應的十六進制)0x7bb3,定位到線程後一切好辦。

❹ 怎麼用linux命令查看jvm進程有幾個線程

在LINUX上可以使用kill -3 pid > thread.info來取得當前JVM線程的信息;
jstack 這個是用來查看jvm當前的thread mp的。可以看到當前Jvm裡面的線程狀況。
這個對於查找blocked線程比較有意義;

❺ linux 怎樣查看一個進程的線程

方法一:PS
在ps命令中,「-T」選項可以開啟線程查看。下面的命令列出了由進程號為<pid>的進程創建的所有線程。
$ ps -T -p <pid>

「SID」欄表示線程ID,而「CMD」欄則顯示了線程名稱。

方法二: Top
top命令可以實時顯示各個線程情況。要在top輸出中開啟線程查看,請調用top命令的「-H」選項,該選項會列出所有Linux線程。在top運行時,你也可以通過按「H」鍵將線程查看模式切換為開或關。
$ top -H

要讓top輸出某個特定進程<pid>並檢查該進程內運行的線程狀況:
$ top -H -p <pid>

方法三: Htop
一個對用戶更加友好的方式是,通過htop查看單個進程的線程,它是一個基於ncurses的交互進程查看器。該程序允許你在樹狀視圖中監控單個獨立線程。
要在htop中啟用線程查看,請開啟htop,然後按<F2>來進入htop的設置菜單。選擇「設置」欄下面的「顯示選項」,然後開啟「樹狀視圖」和「顯示自定義線程名」選項。按<F10>退出設置。

閱讀全文

與linuxjava查看線程相關的資料

熱點內容
圖形化apk反編譯工具 瀏覽:48
考勤表加密怎麼辦 瀏覽:735
arj壓縮與解壓批處理怎麼寫 瀏覽:658
php和大數據哪個好 瀏覽:930
未來最值得投資的加密貨幣 瀏覽:526
ascii碼是編譯的時候用嗎 瀏覽:781
壓縮機感應包可以通用嗎 瀏覽:412
方舟伺服器怎麼發布到搜索列表 瀏覽:270
xml防反編譯 瀏覽:241
數據傳輸加密系統技術方案 瀏覽:842
程序員沒有準備去面試 瀏覽:4
51單片機usb滑鼠 瀏覽:881
qq伺服器的ip地址查詢 瀏覽:112
java仿qq聊天 瀏覽:401
解壓的ipa重新打包 瀏覽:144
程序員那麼可愛vip版 瀏覽:240
程序員怎麼升職 瀏覽:245
圖形化命令按鈕vb 瀏覽:987
vcu盤加密怎麼設置 瀏覽:415
如何加密備份微信聊天記錄 瀏覽:529