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

标签 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 进程中所有线程的上下文切换总和?

最佳答案

如果您希望在 Java 中执行此操作,那么 API 不提供此类方法。您将不得不采用依赖于平台的方式来执行此操作。

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


如果您打算使用 pidstat 执行此操作,那么您确实应该在 SuperUser.com 中问这个问题。但是,据我所知,您可以将 -t 添加到 pidstat 命令中,使其看起来像这样:

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

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

关于java - 如何查看Java进程中所有线程的所有上下文切换的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21850505/

相关文章:

java - 当我 setBackground(); 时,Slick2d java 游戏崩溃;

javascript - ng-repeat 和指令的 Angular 性能问题

带有大量图像的 iPhone 桌面 View

Java:来自unix时间戳的日期

java - 如何在多项选择 Activity 中更改问题并将分数传递到下一个 Activity

linux - 实时 Linux 系统监控工具

linux - 在 osx 升级后获取 bash_profile 后,所有 bash 命令都丢失了

linux - Octave,Ubuntu 上的统计包

performance - 使用什么scala或java库可以以最有效的方式每天从1000个域中抓取+10M页面

java - 后缀到中缀