一、出现问题
在发现公司门禁服务无法开门的第一时间,去线上服务器上查看了一下进程的运行情况,具体运行如下:

第一次在查看的时候发现并没有我需要的服务entranceguard进程(图片是后续截图的)

二、第一时间启动服务
在察觉到服务挂了之后,第一时间就是让服务重新启动,所以运行了项目下的python脚本,具体运行如下:

此时再次使用ps -ef | grep java 命令时发现服务已经正常运行了,解决了第一紧急事情,然后接下来是对这次事件进行排查:

三、排查问题:
在排查问题的第一时间,通过top命令查看了当时的服务器的cpu与及内存及负载均衡的相关情况,发现我的进程占用cpu 100%而且整个负载超过1.0,所以此时发现运行有问题;

此处找出占用cpu过高的java进程id:761,然后对该进程的每个线程的运行情况;

四、查看占用cpu过高的进程中所有线程的运行情况:
使用ps -mp pid -o THREAD,tid,time命令查看该进程的线程情况,发现该进程有一个线程占用率很高,具体如下:

此处发现线程pid:795 占用cpu99.7%,基本问题线程已确定,然后定位线程的具体问题:

五:定位线程具体问题:
查看该线程的堆栈情况,先将线程id转为16进制,使用printf “%x\n” tid命令进行转换,因为线程堆栈情况记录的是线程的16进制id:

然后根据该id通过命令 jstack pid |grep tid -A 30(pid:进程id,tid:线程id) 查出具体问题如下:

此时发现log4j打印dubbo日志的线程已阻塞,发现是线程无法写入,基本定位问题可能是磁盘空间的问题;

六、查看磁盘空间大小:
通过命令 df -h查询发现/dev/vda1该文件夹使用率100%,磁盘空间爆满

接下来通过命令du -sh *查看具体文件夹占用内存情况发现我的项目tomcat占用了90多G,

最后定位问题是在tomcat中的catalina.out控制台日志输出过大,造成磁盘空间占满,然后系统无法继续写日志,从而导致刚好dubbo服务打印的日志一直处于死锁状态,该线程陷入死循环,大量消耗cpu,最终的结果是内存溢出,杀死进程了;

七、解决问题:
一、删除掉了catalina.out文件,top指数直接下降:

整个服务运行正常;
二、修改代码:
将控制台打印的日志给禁用掉,并限制打印日志的大小,因为我的日志里面有打印base64位的图片日志,该日志所需空间太大,所以对日志禁用及限制;

八、本次感悟:
1、打印日志的时候不要过多,但是要清晰,就是核心问题体现出来;
2、控制台的日志可以不用打印,因为配置了指定的日志输出文件,而且控制台的日志有许多的冗余信息;
————————————————
版权声明:本文为CSDN博主「游荡程序洋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lonyness/article/details/82628988

linux服务器cup100%问题排查的更多相关文章

  1. linux服务器负载问题排查

    目录 一.CPU和内存问题 top命令 vmstat命令 free命令 二.磁盘问题 iostat命令 iotop命令 du和df命令 三.网络问题 nload命令 nethogs tcpdump 最 ...

  2. Linux 服务器性能问题排查思路

    一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候, ...

  3. Linux服务器以及系统性能排查常用命令

    一.在Linux系统中排查CPU故障的方法和技巧 1.top命令 Linux内部命令,可以查看实时的CPU的使用情况,也可以查看CPU最近一段时间CPU的使用情况 Linux下常用的性能分析工具,能够 ...

  4. Linux服务器被黑 排查思路

    目录 一.为何会被入侵? 二.排查 入侵排查 检查是否还存在被登陆可能 计划任务 被修改的文件 筛选日志 日志恢复 找到异常进程-1 找到异常进程-2 找到异常进程-3 找到异常进程-4 三.总结 一 ...

  5. 检查Linux服务器性能

    如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在? 概述通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. • uptime• ...

  6. 用十条命令在一分钟内检查Linux服务器性能

    转自:http://www.infoq.com/cn/news/2015/12/linux-performance 如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出L ...

  7. Linux服务器的那些性能参数指标

    Linux服务器的那些性能参数指标 一个基于Linux操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要, ...

  8. linux服务器分析优化

    转:http://jiekeyang.blog.51cto.com/11144634/1774473 一.系统性能分析 1.系统的性能是指操作系统完成任务的有效性.稳定性和响应速度.操作系统完成任务与 ...

  9. Linux安全事件应急响应排查方法总结

    Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...

  10. 线上Linux服务器运维安全策略经验分享

    线上Linux服务器运维安全策略经验分享 https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&a ...

随机推荐

  1. xcode打包导出ipa

    xcode打包导出ipa 众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果IPA,作为刚接触ios开发的同学,只是学习ios app开发内测,并没有上架appstore需求,对于苹果 ...

  2. TypeError: this.libOptions.parse is not a function

    安装完node.js运行项目后,报错: TypeError: this.libOptions.parse is not a function at ESLint8Plugin.<anonymou ...

  3. L2-030 冰岛人 (25 分) (阅读理解)

    补题链接:Here 2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名.好事者发现冰岛人的名字后面似乎都有个"松"(son),于是有网友科普如下: 冰岛人沿用的是维京人古 ...

  4. 三、swift大对象--动态大对象

    系列导航 一.swift对象存储环境搭建 二.swift添加存储策略 三.swift大对象--动态大对象 四.swift大对象--静态态大对象 五.java操作swift对象存储(官网样例) 六.ja ...

  5. threejs第一个案例

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 < ...

  6. lighthouse性能优化分析工具使用

  7. freeswitch的多租户模式

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. 现在的VOIP服务越来越倾向于云端服务,包括呼叫中心云服务,线路云平台. 而云平台对多个客户的服务就需要做好隔离,包括数据隔离.线路 ...

  8. C#使用正则表达式检查字符串中重复出现的词

    private void button1_Click(object sender, EventArgs e) { MatchCollection matches =//使用正则表达式查找重复出现单词的 ...

  9. ABP微服务系列学习-微服务模板结构

    开源版本ABP CLI里面的模板是不包含微服务模板的,而商业版里面有一个微服务模板.这个模板据说是微服务的最佳实践,eShopOnAbp这个仓库的结构基本也和商业版的微服务模板一致.那就开始学习一下. ...

  10. AI伴侣下载

    总结 现在网页上很多下载的AI伴侣下载下来都会有些问题或者不能用,如下链接下载的AI伴侣亲测可以使用! (连接后会提示更新,博主没有选择更新,如有需要也可以更新) https://mit-ai2-co ...