Linux_Linux查看某個進程下面的線程

 

線程基本概念   

     線程是現代操作系統上進行並行執行的一個流行的編程方面的抽象概念。當一個程序內有多個線程被叉分出用以執行多個流時,這些線程就會在它們之間共享特定的資源(如,內存地址空間、打開的文件),以使叉分開銷最小化,並避免大量高成本的IPC(進程間通信)通道。這些功能讓線程在併發執行時成爲一個高效的機制。

      在Linux中,程序中創建的線程(也稱爲輕量級進程,LWP)會具有和程序的PID相同的“線程組ID”。然後,各個線程會獲得其自身的線程ID(TID)。對於Linux內核調度器而言,線程不過是恰好共享特定資源的標準的進程而已。經典的命令行工具,如ps或top,都可以用來顯示線程級別的信息,只是默認情況下它們顯示進程級別的信息。

這裏提供了在Linux上顯示某個進程的線程的幾種方式。

 

3種方式

以下3種方式都可以查看進程下的線程

1)ps

 

2)top

 

3)htop    

需要額外安裝,yum install -y htop

 

方式一 :ps

在ps命令中,“-T” 選項可以開啓線程查看。下面的命令列出了由進程號爲<pid>的進程創建的所有線程

ps -T -p <pid>

Tips: T 需要是大寫的

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

 

示例

先通過jps 查看下java 都有那些進程

[root@cdh-manager my_script]# jps -l
11744 org.apache.zookeeper.server.quorum.QuorumPeerMain
11717 com.cloudera.enterprise.alertpublisher.AlertPublisher
12166 org.apache.hadoop.util.RunJar
21737 org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer
9865 com.cloudera.server.cmf.Main
12045 org.apache.hadoop.util.RunJar
11630 org.apache.hadoop.hdfs.server.namenode.NameNode
14000 com.cloudera.cmon.firehose.Main
11856 com.cloudera.kafka.wrap.Kafka
12049 org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
11828 org.apache.hadoop.hbase.thrift.ThriftServer
11638 org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode
44761 org.apache.hadoop.util.RunJar
43993 sun.tools.jps.Jps
11643 org.apache.hadoop.hbase.rest.RESTServer
12283 org.apache.hadoop.hbase.master.HMaster
14043 com.cloudera.cmon.firehose.Main
14076 com.cloudera.cmf.eventcatcher.server.EventCatcherService
You have mail in /var/spool/mail/root

然後使用 ps -T -p 11744 查看下Zookeeper 進程相關的線程

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

[root@cdh-manager my_script]# ps -T -p 11744
   PID   SPID TTY          TIME CMD
 11744  11744 ?        00:00:00 java
 11744  12201 ?        00:00:01 java
 11744  12213 ?        00:00:01 java
 11744  12219 ?        00:00:01 java
 11744  12255 ?        00:00:57 java
 11744  12264 ?        00:00:00 java
 11744  12270 ?        00:00:00 java
 11744  12297 ?        00:00:00 java
 11744  12301 ?        00:00:30 java
 11744  12307 ?        00:00:12 java
 11744  12312 ?        00:00:00 java
 11744  12559 ?        00:00:02 java
 11744  12585 ?        00:00:00 java
 11744  12592 ?        00:11:46 java
 11744  13203 ?        00:00:29 java
 11744  13226 ?        00:00:00 java
 11744  13345 ?        00:01:55 java
 11744  13346 ?        00:00:00 java
 11744  13347 ?        00:00:18 java
 11744  13348 ?        00:00:17 java
 11744  13349 ?        00:03:58 java
 11744  13356 ?        00:00:44 java
 11744  13357 ?        00:00:00 java
 11744  13359 ?        00:00:44 java
 11744  13366 ?        00:00:00 java
 11744  13389 ?        00:01:29 java
 11744  13392 ?        00:00:55 java
 11744  13397 ?        00:01:43 java
 11744  13401 ?        00:00:00 java
 11744  15143 ?        00:01:29 java
 11744  15146 ?        00:01:29 java
 11744  15148 ?        00:07:16 java
 11744  15511 ?        00:00:02 java
 11744  44219 ?        00:00:00 java

 

方式二 :top

    top命令可以實時顯示各個線程情況。要在top輸出中開啓線程查看,請調用top命令的“-H”選項,該選項會列出所有Linux線程。在top運行時,你也可以通過按“H”鍵將線程查看模式切換爲開或關。

top -H

 

top 跟蹤某個進程的線程, top -H -p <pid>

實際操作下:

top - 21:57:15 up 8 days,  1:15,  3 users,  load average: 0.53, 0.38, 0.32
Threads:  71 total,   0 running,  71 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.5 us,  1.7 sy,  0.0 ni, 92.6 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem : 16247820 total,   218504 free, 10114996 used,  5914320 buff/cache
KiB Swap:  8257532 total,  8257012 free,      520 used.  5456792 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND              
 13508 kafka     20   0 2948520 404180  28288 S  6.6  2.5 603:06.78 java                 
 14796 kafka     20   0 2948520 404180  28288 S  0.7  2.5   3:23.24 java                 
 14638 kafka     20   0 2948520 404180  28288 S  0.3  2.5  10:36.47 java                 
 14719 kafka     20   0 2948520 404180  28288 S  0.3  2.5   0:25.33 java                 
 14766 kafka     20   0 2948520 404180  28288 S  0.3  2.5  18:31.44 java                 
 14767 kafka     20   0 2948520 404180  28288 S  0.3  2.5  18:29.78 java                 
 14770 kafka     20   0 2948520 404180  28288 S  0.3  2.5   3:55.67 java                 
 14774 kafka     20   0 2948520 404180  28288 S  0.3  2.5   3:55.67 java                 
 14801 kafka     20   0 2948520 404180  28288 S  0.3  2.5   3:23.15 java                 
 11856 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:00.13 java                 
 13501 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:05.39 java                 
 13504 kafka     20   0 2948520 404180  28288 S  0.0  2.5  13:01.45 java                 
 13506 kafka     20   0 2948520 404180  28288 S  0.0  2.5  13:01.57 java                 
 13520 kafka     20   0 2948520 404180  28288 S  0.0  2.5  25:20.18 java                 
 13521 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:04.70 java                 
 13525 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:02.54 java                 
 13542 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:16.86 java                 
 13547 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:00.00 java                 
 13548 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:43.64 java                 
 13550 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:14.12 java                 
 13552 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:00.00 java                 
 13677 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:00.00 java                 
 13693 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:00.00 java                 
 13705 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:00.00 java                 
 13706 kafka     20   0 2948520 404180  28288 S  0.0  2.5  12:20.87 java                 
 14146 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:11.75 java                 
 14149 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:02.84 java                 
 14152 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:11.64 java                 
 14156 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:11.46 java                 
 14157 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:11.95 java                 
 14158 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:11.31 java                 
 14159 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:11.62 java                 
 14160 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:11.45 java                 
 14583 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:00.00 java                 
 14635 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:02.42 java                 
 14636 kafka     20   0 2948520 404180  28288 S  0.0  2.5  10:35.24 java                 
 14640 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:49.03 java                 
 14641 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:48.15 java                 
 14644 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:48.03 java                 
 14652 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:25.80 java                 
 14654 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:25.13 java                 
 14656 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:25.02 java                 
 14718 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:24.68 java                 
 14720 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:25.10 java                 
 14721 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:25.14 java                 
 14722 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:24.83 java                 
 14725 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:08.84 java                 
 14726 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:01.57 java                 
 14731 kafka     20   0 2948520 404180  28288 S  0.0  2.5   1:49.47 java                 
 14733 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:00.01 java                 
 14764 kafka     20   0 2948520 404180  28288 S  0.0  2.5   3:20.57 java                 
 14768 kafka     20   0 2948520 404180  28288 S  0.0  2.5   1:30.76 java                 
 14772 kafka     20   0 2948520 404180  28288 S  0.0  2.5  10:32.63 java                 
 14775 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:25.10 java                 
 14777 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:25.27 java                 
 14779 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:00.00 java                 
 14784 kafka     20   0 2948520 404180  28288 S  0.0  2.5   0:00.01 java  

 

 

方式三:htop

htop 的用法請參考這篇文章:

 

htop使用詳解--史上最強

https://www.cnblogs.com/programmer-tlh/p/11726016.html

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