1、介绍
利用jps 、 top 、jstack命令找到进程中耗时最大的线程,以及线程状态等等,同时最后还可以显示出死锁的线程 查找:Found one Java-level deadlock 即可
-
1、jps获得进程号

-
2、top -Hp 25606 获取本进程中所有线程的CPU耗时性能

-
3、printf '%x\n' 25608 得到线程的16进制值

-
4、jstack 25606 | grep 6408

以上就是针对进程中某个线程性能损耗很大的查找方式。
-
5、如下是jstack命令的结果
1 2018-04-03 18:50:16 2 Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.101-b13 mixed mode): 3 4 "Attach Listener" #147 daemon prio=9 os_prio=0 tid=0x00007f7798001000 nid=0x75d5 waiting on condition [0x0000000000000000] 5 java.lang.Thread.State: RUNNABLE 6 7 "ConsumerFetcherThread-topic_nimcapture_rzx166-1522750269575-838a87d9-0-23" #146 prio=5 os_prio=0 tid=0x00007f75e4001000 nid=0x5968 runnable [0x00007f767f499000] 8 java.lang.Thread.State: RUNNABLE 9 at sun.nio.ch.Net.poll(Native Method) 10 at sun.nio.ch.SocketChannelImpl.poll(SocketChannelImpl.java:954) 11 - locked <0x000000008e6827b8> (a java.lang.Object) 12 at sun.nio.ch.SocketAdaptor$SocketInputStream.read(SocketAdaptor.java:204) 13 - locked <0x000000008e6827c8> (a java.lang.Object) 14 at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103) 15 - locked <0x000000008e682808> (a sun.nio.ch.SocketAdaptor$SocketInputStream) 16 at java.nio.channels.Channels$ReadableByteChannelImpl.read(Channels.java:385) 17 - locked <0x000000008e6828f8> (a java.lang.Object) 18 at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:81) 19 at kafka.network.BlockingChannel.readCompletely(BlockingChannel.scala:129) 20 at kafka.network.BlockingChannel.receive(BlockingChannel.scala:120) 21 at kafka.consumer.SimpleConsumer.liftedTree1$1(SimpleConsumer.scala:86) 22 at kafka.consumer.SimpleConsumer.kafka$consumer$SimpleConsumer$$sendRequest(SimpleConsumer.scala:83) 23 - locked <0x000000008e682908> (a java.lang.Object) 24 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SimpleConsumer.scala:132) 25 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply(SimpleConsumer.scala:132) 26 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply(SimpleConsumer.scala:132) 27 at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33) 28 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply$mcV$sp(SimpleConsumer.scala:131) 29 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply(SimpleConsumer.scala:131) 30 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply(SimpleConsumer.scala:131) 31 at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33) 32 at kafka.consumer.SimpleConsumer.fetch(SimpleConsumer.scala:130) 33 at kafka.consumer.ConsumerFetcherThread.fetch(ConsumerFetcherThread.scala:108) 34 at kafka.consumer.ConsumerFetcherThread.fetch(ConsumerFetcherThread.scala:29) 35 at kafka.server.AbstractFetcherThread.processFetchRequest(AbstractFetcherThread.scala:102) 36 at kafka.server.AbstractFetcherThread.doWork(AbstractFetcherThread.scala:93) 37 at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:63) 38 39 "topic_nimcapture_rzx166-1522750269575-838a87d9-leader-finder-thread" #145 prio=5 os_prio=0 tid=0x00007f7648016800 nid=0x5967 waiting on condition [0x00007f767f4da000] 40 java.lang.Thread.State: WAITING (parking) 41 at sun.misc.Unsafe.park(Native Method) 42 - parking to wait for <0x00000000902d3b60> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 43 at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) 44 at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) 45 at kafka.consumer.ConsumerFetcherManager$LeaderFinderThread.doWork(ConsumerFetcherManager.scala:61) 46 at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:63) 47 48 "ConsumerFetcherThread-topic_nimcapture_rzx166-1522750271582-6022ccb2-0-23" #144 prio=5 os_prio=0 tid=0x00007f7644003000 nid=0x5966 runnable [0x00007f767f51b000] 49 java.lang.Thread.State: RUNNABLE 50 at sun.nio.ch.Net.poll(Native Method) 51 at sun.nio.ch.SocketChannelImpl.poll(SocketChannelImpl.java:954) 52 - locked <0x000000008e6a7338> (a java.lang.Object) 53 at sun.nio.ch.SocketAdaptor$SocketInputStream.read(SocketAdaptor.java:204) 54 - locked <0x000000008e6a7348> (a java.lang.Object) 55 at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103) 56 - locked <0x000000008e6a7388> (a sun.nio.ch.SocketAdaptor$SocketInputStream) 57 at java.nio.channels.Channels$ReadableByteChannelImpl.read(Channels.java:385) 58 - locked <0x000000008e6a7478> (a java.lang.Object) 59 at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:81) 60 at kafka.network.BlockingChannel.readCompletely(BlockingChannel.scala:129) 61 at kafka.network.BlockingChannel.receive(BlockingChannel.scala:120) 62 at kafka.consumer.SimpleConsumer.liftedTree1$1(SimpleConsumer.scala:86) 63 at kafka.consumer.SimpleConsumer.kafka$consumer$SimpleConsumer$$sendRequest(SimpleConsumer.scala:83) 64 - locked <0x000000008e6a7488> (a java.lang.Object) 65 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SimpleConsumer.scala:132) 66 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply(SimpleConsumer.scala:132) 67 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply(SimpleConsumer.scala:132) 68 at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33) 69 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply$mcV$sp(SimpleConsumer.scala:131) 70 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply(SimpleConsumer.scala:131) 71 at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply(SimpleConsumer.scala:131) 72 at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33) 73 at kafka.consumer.SimpleConsumer.fetch(SimpleConsumer.scala:130) 74 at kafka.consumer.ConsumerFetcherThread.fetch(ConsumerFetcherThread.scala:108) 75 at kafka.consumer.ConsumerFetcherThread.fetch(ConsumerFetcherThread.scala:29) 76 at kafka.server.AbstractFetcherThread.processFetchRequest(AbstractFetcherThread.scala:102) 77 at kafka.server.AbstractFetcherThread.doWork(AbstractFetcherThread.scala:93) 78 at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:63)