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

第一次在查看的时候发现并没有我需要的服务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. ServiceWorker工作机制与生命周期:资源缓存与协作通信处理

    在 <web messaging与Woker分类:漫谈postMessage跨线程跨页面通信>介绍过ServiceWorker,这里摘抄跟多的内容,补全 Service Worker 理解 ...

  2. 火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0 (Ⅳ)

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,<火山引擎云原生数据仓库 ByteHouse 技术白皮书>正式发布.白皮书简述了 ByteHou ...

  3. Solon Web 开发,十、签权

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  4. python发送邮件+多人+附件 !!!!

    import smtplib import os from email.header import Header from email.mime.text import MIMEText # shen ...

  5. 微软的一些公开课,Python、机器学习、SQL、AI,全部免费

    大家好,我是老章,刷X看到一位博主Alif Hossain@alifcoder总结了微软的一些公开课,全部免费,蛮不错的.感兴趣可以学一波,还能领徽章. 1. 机器学习简介 本课程是学习机器学习基础知 ...

  6. 对于 CDN 的多元理解

    这是二狗子为数不多的创业故事. 那时二狗子还是一名高中生,学校是封闭式管理.由于二狗子总忍不住上课吃零食,他便每周一都会背着一麻袋零食来上学. 这上课吃零食行为,不知不觉诱惑到了周围的同学.大家纷纷向 ...

  7. VA21 创建报价单

    1.前台 报价是提供给客户交付货物或服务的一份文件,客户想要知道产品价格以及装运时间. 事务代码VA21 输入报价单类型和销售组织.分销渠道.产品组 输入售达方和行项目的物料信息,订购数量等信息 输入 ...

  8. Codeforces 1326A Bad Ugly Numbers (思维)

    Codeforces 1326A Bad Ugly Numbers 看完题目,第一直觉,质数肯定满足题意,再看数据范畴,\(1≤n≤10^5\), 质数线性筛仅能做到 n=7 的情况,即处理到1000 ...

  9. 开发人员常用Docker指令

    什么是 Docker? Docker 是一个开源的容器化平台,用于构建.打包和运行应用程序.它允许开发者将应用程序及其依赖项打包成一个独立的可移植容器,可以在任何环境中运行,无论是开发环境.测试环境还 ...

  10. java进阶(30)--Hashtable集合与Properties集合

    一.Hashtable简介 1.HashMap与Hashtable区别 Hashtable的key与value均不能为空,而HashMap均可以 2.Hashtable方法带有Synchronized ...