之前在做一个项目时,遇到了cpu占用100%的问题。原因是引用数据库的jdbc驱动包与服务使用的某个类产生了冲突,导致死锁。
调查该问题时用到了一个工具,JDK自带java程序性能分析工具jconsole,可以用来查看本地或远程服务的java程序的性能及运行状况,位置在JDK的bin目录下的jconsole.exe。
启动后会显示本机启动的java进程,连接一个java进程,回显出来当前进行中启动的线程、CPU、内存等系统信息;
如果是需要调试远程服务器上的java服务,就需要在启动java服务时追加一些参数:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1088
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=172.16.13.114
这相当于是在114这台机器上起了一个新端口1088,远程连接时使用jconsole