目录
0.查看系统位数
Linux:getconf LONG_BIT
HP-UX:getconf KERNEL_BITS
1.查看java进程ID
使用jps、ps -ef | grep java查看当前java进程的pid,严重情况下可以使用top命令查看当前系统cpu/内存使用率最高的进程pid。
2.查看进程中的线程ID
使用命令查看进程里面占用最多的资源的线程:
Linux:top -Hp ${pid}、pstree -p ${pid}
HP-UX:tusc
3.将线程ID转换成16进制
使用命令把线程tid转换成16进制数。
printf "%x\n" ${tid}
4.jstack生成当前时刻线程快照
(threaddump,即当前进程中所有线程的信息)
使用命令查询该线程阻塞的地方:
【32位机器】jstack -l ${pid} >>jstack.log
【64位机器】jstack -J-d64 -l ${pid} >>jstack.log
jstack更多详细用法可以查看官方说明:
http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstack.html
HP-UX进程占用CPU过高分析
1、用pstack -p ${pid} 查看进程的堆栈信息。
2、用glance查看这个线程的cpu,先按s键,输入进程id,在按G键可以查看每个线程占用CPU
系统中进程查看:
Linux系统中可以使用strace / ltrace工具,在HPUX中可以使用tusc / kiinfo工具。
Java 线程数多少是受 max user processes 控制,max user processes 是配置在/etc/security/limits.conf
或者执行命令ulimit -a查看
检查 使用 ps -fe |grep programname 查看获得进程的pid,再使用 ps -Lf pid 查看对应进程下的线程数.
查看最大线程数:cat /proc/sys/kernel/threads-max
ps -eLf |grep pid|grep -v grep
使用HP-UX的 lsof -i |grep ${pid}可以查到程序名,进程号
来源:CSDN
作者:gzxdale
链接:https://blog.csdn.net/gzxdale/article/details/102983950