一,结合linux基本命令和jmap,jstack等工具。
- 根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。
- 通过ps aux | grep PID命令,可以进一步确定是哪个进程出现了问题。怎么定位到具体线程或者代码呢?
- 显示当前java进程的线程列表
ps -mp pid -o THREAD,tid,time
从中可以找到了耗时最高的线程28802。
- 其次将需要的线程ID转换为16进制格式:
printf "%x\n" tid
- 本地打印线程的堆栈信息*(注意主工程由于{}JVM Xms{}设置非常大,不可线上运行时执行!*)
jstack pid |grep tid -A 30
这样,对应异常找到出现问题的代码。
二,linux常用确认服务状态命令。
统计tcp连接状态: netstat -n | awk '/^tcp/ {++S[$NF]} END{for(a in S) print a, S[a]}'
统计用户进程当前操作句柄数:lsof -n|awk '{print $2}|'|sort|uniq -c |sort -nr|more
统计用户进程内部执行的线程数:ps -eLf|grep java|wc --l
查看运行时进程参数设置:cat /proc/pid/limits,cpuset及coredump_filter
查看当前某端口连接数:netstat -nat|grep -i "80" |wc -l
对连接的IP按连接数量进行排序:netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n (运维操作已放弃netstat,改为ss命令入侵更轻量)
Tcpdump访嗅访问数据包最高请求:tcpdump -i eth0 -tnn dst port 80 -c 1000
相关推荐
在某个新服务器上,新建了一个MySQL的实例,该服务器上面只有MySQL这一个进程,但是CPU的负载却居高不下,使用top命令查询的结果如下: [dba_mysql@dba-mysql ~]$ top top - 17:12:44 up 104 days, 20 min, 2 ...
本文主要记录一次tomcat进程,因TCP连接过多导致CPU占用过高的问题排查记录。 问题描述 linux系统下,一个tomcat web服务的cpu占用率非常高,top显示结果超过200%。请求无法响应。反复重启依然同一个现象。 问题...
java进程高CPU占用故障排查
java进程占用CPU和内存太高问题排查相关测试文件
3.top -H -p PID 查看对应进程的哪个线程占用CPU过高。 4.echo “obase=16; PID” | bc 将线程的PID转换为16进制。 5.在第二步导出的Java.txt中查找转换成为16进制的线程PID。找到对应的线程栈。 6.分析...
linux 排查cpu负载过高异常,找到最耗CPU的进程,找到最耗CPU的线程,将线程PID转化为16进制
Linux系统中java进程占用cpu资源过高,分析(自用,需要私聊)
近期有几台服务器相继出现 lsass.exe 占用CPU过高,也不算太高,而且过了一段时间又会恢复正常,CPU过高直接造成网站打开很慢,周而反复。 在CPU跑高的时候,伴随着一个现像就是网络的浮动,有时候上传居然达到了30M...
NULL 博文链接:https://ainn2006.iteye.com/blog/1549724
cpu占用过高,服务器卡死,问题排查 java进程占用CPU过高常见的两种情况: 代码中有死循环或者接近死循环的操作 快速创建大量临时变量,导致频繁触发gc回收 问题解决: 1、用top命令找到cpu占用率最高的进程号是...
朋友主机(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL 服务进程 (mysqld-nt.exe) CPU 占用率总为 100% 高居不下。此主机有10个左右的 database, 分别给十个网站调用。据朋友测试,导致 mysqld-nt.exe cpu 占用...
对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!特此整理排查方法一篇,供大家参考讨论提高。 二、问题复现 线上系统突然运行缓慢,CPU...
jmap 排查 java 进程内存使用率高步骤glances 找出服务器中 CPU 占用率高的进程临时修改程序用户的 shell 为可登录用户并切换到该用户注意
CPU占用过高是LINUX服务器出现常见的一种故障,也是程序员线上排查错误必须掌握的技能,我们经常需要找出相应的应用程序并快速地定位程序中的具体代码行数,本文将介绍一种CPU占用过高的一种处理思路,文中采用四...
运行在Windows上的Oracle开发库的oracle进程CPU使用率保持在99%,服务器和数据库均反应缓慢。 二、排查思路 可能造成CPU使用率高的情况有:大量排序、大量SQL解析、全表扫描、Oracle Bug等。因此希望找到...
前言 作为 Linux 运维工程师,在...找到占用CPU过高的进程的pid 第二步:使用 top -H -p [进程id] 找到进程中消耗资源最高的线程的id 第三步:使用 echo ‘obase=16;[线程id]’ | bc或者printf “%x\n” [线程id