如何查看Java进程中所有线程的所有上下文切换的总和?

时间:2014-02-18 10:14:14

标签: java linux performance monitoring pid

我在CentOS linux上运行pidstat来监控Java应用程序。当我将java pid提供给pidstat时,它从不显示任何上下文切换。

top
2407 root      20   0 7939m 4.2g  11m S 129.3 58.4 138:47.08 java

pidstat -w -I -p 2407 3

09:53:41 AM       PID   cswch/s nvcswch/s  Command
09:53:44 AM      2407      0.00      0.00  java

我必须找到特定Java线程的pid(使用top -H)来查看上下文切换。

top -H
2915 root      20   0 7939m 4.2g  11m R 22.8 58.3  17:36.93 java

pidstat -w -I -p 2915 3

09:53:41 AM       PID   cswch/s nvcswch/s  Command
10:10:11 AM      2915    643.67    230.33  java

如何看待Java进程中所有线程的所有上下文切换的总和?

1 个答案:

答案 0 :(得分:2)

如果您希望在Java中执行此操作,则API不提供此类方法。您将不得不求助于平台相关的方式。

您可以使用JNI / JNA本地为不同的操作系统执行此操作:


如果您的意思是使用pidstat执行此操作,那么您应该在SuperUser.com中提出这个问题。但是,据我所知,您可以在-t命令中添加pidstat,以便它看起来像这样:

pidstat -w -I -t -p <pid> 3

它将列出流程所有线程的统计信息。