2013-05-09 120 views
-5

我想监控java web应用程序,但不知道如何监控。如何监控java web应用程序

  1. 什么是我可以通过性能监视器监视窗口或ps -ef在linux java的工作进程/线程的名字吗?

  2. 如何监视Java工作线程池?

  3. 如何监视JVM和我应该监视的计数器?

感谢

+0

如果您愿意付款并希望投入更少时间,请尝试newrelic。 – zengr 2013-05-09 22:49:56

+0

你想通过监测完成什么? – meriton 2013-05-09 22:56:54

回答

1

有许多工具来做到这一点。请看看JDK附带的jvisualvm作为其中之一。

Java进程名称通常包含“java”字样

2

对于任何Java进程,请尝试JVisualVM。如果您需要特定于Web的内容,则必须提供更多详细信息

+0

我想监视Java应用程序的进程cpu /内存使用情况。有没有办法直接从perfmon或ps -ef命令进行监控? – 2013-05-09 23:58:21

+0

如果你想监视Windows上的JVM进程,你可以尝试Sysinternals Process Explorer http://technet.microsoft.com/en-us/sysinternals/bb896653。这是IMO在Windows平台上的良好表现。但是,我必须坚持使用JVisualVM,它显示了有关虚拟机内部和资源消耗的更多细节。我很确定那是你需要的。 – jambriz 2013-05-10 13:27:26

1

jVisualVM将与您想要的最接近,并且可以通过JDK%JAVA_HOM%/ bin/jvisualvm.exe免费获得。您将需要使用额外的JVM选项可以挂接到你的web应用(这也将需要重新启动):

  • -Dcom.sun.management.jmxremote

说明:能够用于JMX代理本地接入通过注册JVM仪表Mbean和发布RMI连接器的专用接口上

  • -DC om.sun.management.jmxremote.port = 3333

描述:用于RMI连接的端口(必须是未使用的端口)

  • -Dcom.sun.management。 jmxremote.ssl =假

描述:禁用客户端SSL认证(最简单的/最快配置)的默认值

  • -Dcom.sun.management.jmxremote.authenticate =假

描述:禁用密码认证的默认值进行远程监控

  • -Djava.rmi 。服务器。主机名 =本地主机

说明:为RMI监听器选项(使用本地主机有RMI听仅限本地或者将其设置为应用程序服务器的主机名进行远程监控)

运行jVisualVM并选择“添加新JMX连接“并输入localhost:3333。我最喜欢的扩展是线程堆栈,它显示了当前正在运行的线程的线程堆栈。