点击上方“只会写BUG的程序猿”,选择“设为星标”
“ 公司项目15个Java服务.都部署在一个服务器上,最近几天一直是不是就会挂掉.就像是被人为kill -9掉了.。”
排查思路
这一块排查Java日志.没有发现有OOM,死循环等影响服务能挂掉的代码.
nacos服务日志,
a.大量服务实例健康检查失败,达到保护阈值
b.服务单点故障风险极高
c.自动恢复的时候,Rooszhang服务没有正常启动,排查日志.seata的报错.
怀疑是不是分布式,排查后发现也不是.
因为是微服务,而且没有做日志统一管理,所以一个个去看.也没有发现有什么异常错误.只是在网关发现有一个漏洞注入.但是这个没有成功.之后服务就掉线了.怀疑是病毒.
# 1. 持续观察CPU,按 C 可看完整命令。如果CPU有进程持续异常占用(比如>500%),要重点关注。top -c# 2. 查看网络连接,找异常。比如连接到非常见国家IP、非业务端口的连接。# 重点看 ESTABLISHED 状态的连接,忽略你的服务端口和已知地址(如阿里云RDS)。netstat -antp | grep ESTABLISHED
# 查看所有用户的定时任务cat /etc/crontabls -la /etc/cron.* /var/spool/cron/# 检查系统启动项,找异常自启脚本systemctl list-unit-files | grep enabled
AI给我的理由:
查看所有的启动服务
systemctl list-unit-files | grep enabled
也没有发现什么异常服务.
僵尸进程泛滥,系统资源耗尽
Tasks: 12914 total, 1 running, 360 sleeping, 0 stopped, 12553 zombie
12553 个僵尸进程! 这是最致命的发现。
后面我查了一下.这个僵尸进程还在一直增加.直到我处理的时候,已经飙升到12650的程度.# 统计所有僵尸进程的父进程,按数量排序ps -eo ppid,stat | grep Z | awk '{print $1}' | sort | uniq -c | sort -nr
# 查看其打开的文件,看它正在处理什么数据lsof -p 2464
中间.我还以为是zipkin的问题.在服务器上查了好久.还修改了项目中的链接.https://blog.csdn.net/u013432938?type=blog