繁体   English   中英

Java多线程峰值处理器的使用

[英]Java multithreading peak processor usage

我似乎对一个负载很重的多线程Java应用程序(使用Client JVM启动)的处理器使用情况有一个奇怪的解读。

问题是即使在高负载下,处理器使用率也达到了99.9%(使用Debian Linux Kernel 2.6上的顶级系统实用程序)。 这看起来很奇怪,因为服务器是一个8核心,因此我希望有一些东西可以达到> 100%的重负荷。

是否有我应该考虑的JVM选项或我应该查看的任何系统参数?

我目前正在使用以下参数进行JVM启动:

  java -XX:PermSize=128M -XX:MaxPermSize=512M -Xss1024k -Xms512M -Xmx2048M

观察到的处理器使用的最可能原因是您的应用程序具有并发瓶颈,有效地将其限制为平均单个线程的速度。

更改JVM选项不太可能产生显着差异。 您需要使用Java性能分析器来确定瓶颈的位置,并找出如何消除它们。

负载很重的多线程Java应用程序(使用Client JVM启动)。

这听起来像个坏主意。 客户端VM专为小型,轻量级应用程序而设计,例如32位系统上的applet。 我建议你使用Server VM,它是Linux,Solaris和64位Windows的默认设置。

这看起来很奇怪,因为服务器是一个8核心,因此我希望有一些东西可以达到> 100%的重负荷。

这意味着您的应用程序实际上是单线程的 您可能尝试使用多个线程,但除非它们可以独立操作,否则它们不能一次运行多个线程。

是否有我应该考虑的JVM选项或我应该查看的任何系统参数?

命令行选项无法控制此操作。 这完全取决于您的线程如何交互。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM