Linux Java程序debug总结
来源:互联网 发布:橘子vr软件下载 编辑:程序博客网 时间:2024/06/10 20:19
最近博主debug了远程Linux服务器上的Java程序,在此对过程中所使用的工具进行一番总结。
使用Linux shell进行debug
通过putty登录到Linux服务器,我们可以使用Linux上的shell命令进行debug。
首先我们可以使用
ps -e
指令来确认Java进程的pid:
f
然后我们可以使用
top -p pid来查看该进程所消耗的内存,与cpu占用情况:
在确认我们Java程序所在进程出现问题后,我们使用如下指令来查看进程中线程的时间消耗情况:
ps -mp pid -o THREAD,tid,time
通过对比各个线程消耗CPU时间的多少我们可以大致判定出问题所在线程,首先我们先把线程号转化为16进制格式:
printf "%x\n" tid然后通过jstack指令打印线程运行信息:
jstack pid |grep tid -A 30上述指令的意思为:打印pid进程的Java运行信息,截取带有tid线程号的行并输出其后30行的信息
使用jvisualvm进行远程debug
首先我们需要修改Linux 服务器上的/etc/hosts文件,把对应的hostname改为机器的外网ip:
vi /etc/hosts
然后在我们启动Java进程时加上以下配置参数:
-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx # Linux主机外网ip-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=28888 # 通信端口,在jvisualvm中需要填入-Dcom.sun.management.jmxremote.authenticate=false # 不需要用户名密码登录-Dcom.sun.management.jmxremote.ssl=false
然后我们启动jvisualvm,该工具为JDK自带,在JDK安装目录/bin目录下。
打开后我们使用远程监控:
右键添加远程主机,输入ip添加完成。
然后再右键添加JMX连接,输入对应的ip:port即可。
通过jvisualvm,我们既可以查看Java虚拟机总体的资源使用情况:
又可以查看其中每个线程的状况,必要时还可以dump内存进行debug:
0 0
- Linux Java程序debug总结
- Eclipse Debug程序总结
- 多线程程序debug linux
- linux debug工具总结
- 远程debug Java程序
- Debug 调试 Java 程序
- java程序远程debug
- linux 程序开发打印 debug()
- 【工具】Debug 调试 Java 程序
- Java学习总结之Debug
- 写程序的一些Debug总结
- 使用 idea 远程 debug Linux 服务器上的 tomcat java 程序
- Linux C程序传递DEBUG宏参数
- Java使用Debug进行程序调试
- Eclipse开发Java程序用Debug调试
- 远程调试Java程序,远程Debug
- 【java web】 错误debug记录与总结
- debug程序
- 关于两个特殊信号,SIGSTOP与SIGCONT
- 首次开通博客【人工置顶】
- 第二行代码读书笔记--git的使用(四)
- FL2440—独立ADC驱动模块
- MySQL优化
- Linux Java程序debug总结
- iOS之UICololor的使用
- 从DllMain下断点到LdrpCallInitRoutine
- Codeforces 793A Oleg and shares 题解
- Android深入四大组件(三)Service的绑定过程
- Matlab图像处理(02)-图像基础
- 网络互联基础知识
- BZOJ 1407: [Noi2002]Savage 扩展欧几里得
- 【ZJOI2013】bzoj3112 防守战线