linux服务器上,用uptime、top查看系统的负载明显过高,经过排查,发现是因为代码中死循环造成的。具体的排查过程请参照本文。

使用top命令,发现load average指标值都在1附近,偏高。当然也可以用uptime。用top的好处是可以看到各个进程使用资源的一个排名。在top结果页面,输入P,以cpu消耗进行排名,发现有个java进程占用了98%的cpu资源。记下该进程的pid,通过ps -f -p pid命令,可以发现该进程是tomcat进程,它提供了一个web服务。

目前进程的信息对我们问题的排查没有任何帮助,我们需要查看线程的信息。我们知道,jdk提供了对线程的监控命令jstack,但是我们直接使用此命令帮助不大。我们可以先找出消耗资源较多的线程,这里又要用到top命令。top命令不仅可以查看进程,还可以查看线程。使用top -p pid,只对该进程进行监控,进入界面后,输入H,可以查看该进程下各线程使用资源的情况。截图如下:

可以看出线程20591消耗资源较多。

接下来,我们就需要看看这个线程到底干了什么事情。此时就需要用到jdk提供的jstack工具了。

将线程栈打出来:jstack -F pid,截图如下:

jstack会将进程下所有线程信息打印出来,上图只是截取了部分线程信息。根据线程号,可以找到对应的线程栈。

通过线程栈,找到对应的java代码,发现是因为死循环导致。修改代码重新部署,系统恢复正常。

转载于:https://blog.51cto.com/bosszhang/2139180

Linux应用服务导致系统负载过高问题排查相关推荐

  1. centos7 gam_server进程导致CPU使用率100%,系统负载很高

    现象 gam_server的进程占用吃满cpu,导致系统负载很高,top命令卡死 作用 gam_server是gamin的二进制文件,作用是文件交替监控 方案 找到最高的进程PID top是Linux ...

  2. Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决

    Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决 参考文章: (1)Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决 (2)https://www.cnblog ...

  3. Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决(续)

    Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决(续) 参考文章: (1)Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决(续) (2)https://www. ...

  4. linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路

    本文主要向大家介绍了Linux运维知识之Linux服务器CPU占用率较高问题排查思路,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 注意:本文相关配置及说明已在 CentOS  ...

  5. linux分区压力测试,stress-Linux系统压力测试工具使用及系统负载很高的几种场景测试...

    安装 yum install stress stress-ng -y stess-ng是stress的下一代,功能更加完善 常用选项 -c,--cpu:代表进程个数(每个进程会占用一个cpu,当超出c ...

  6. 查看oracle负载过大的原因,Oracle备份时系统负载过高导致ORA-3136错误和AIX系统的3D32B80D错误...

    环境: 数据库: AIX5.3下的64位Oracle 10.2.0.1.0 TSM5.4:Windows 2003 带库:IBM3100 1. 数据库的alert_SID.log Mon Jan 11 ...

  7. 转:[kipmi0]进程导致系统负载高

    最近一个用户这边服务器出现服务器负载很高的情况,原本正常是0.3~0.5左右  不正常的时候会达到3,重启机器就正常,开始以为是程序问题,后来在观察的时候把程序给杀掉了 然后重启,结果负载还是很高,于 ...

  8. centos cpu排查_Linux/CENTOS 系统 CPU 占用率较高负载较高问题排查思路 - 沃森博客...

    如果阿里云服务器 ECS Linux 系统的 CPU 持续跑高,则会对系统稳定性和业务运行造成影响.本文对 CPU 占用率较高问题的排查分析做简要说明.注意:本文相关配置及说明已在 CentOS 6. ...

  9. linux磁盘满了以及负载过高解决办法

    1. 磁盘满了 如果一台机器磁盘满了,首先我们需要确定其位置,命令为 df(或者df -h) //显示结果 Filesystem 512-blocks Used Available Capacity ...

最新文章

  1. Chrome插件HostAdmin
  2. 光伏行业需理性看待低价中标 市场竞争是必然选择
  3. 我是如何用机器学习技术帮助 HR 省时间的
  4. 密码技术--国密证书及go语言生成自签国密证书
  5. android的单选按钮xml语法,android 控件 单项选择(RadioGroup,RadioButton)
  6. tomcat防cc_浅析Tomcat防止资料被锁的方式
  7. BDTC 2019 | 七个开发者能干多大的事?​
  8. python删除链表的倒数第k个节点,剑指offer 链表中的倒数第K个节点 Python and C++
  9. ncurses输入函数:字符+字符串的输入
  10. python爬虫10万信息mysql_python爬虫:爬取易迅网价格信息,并写入Mysql数据库
  11. PannerNode
  12. SpringMVC @ResponseBody 406
  13. disruptor小结--消费者
  14. AWS Fargate告诉你:什么是容器即服务
  15. qt 旋转后的三维坐标_OpenGL + Qt: 3 - 旋转动画和键盘操纵
  16. js将华氏度转为摄氏度
  17. 微信小程序怎么登录?如何正确登录微信小程序后台?
  18. 面对新的挑战,成为更好的自己--进击的技术er
  19. 概率论与数理统计---------大数定律
  20. Web安全防攻(渗透测试)

热门文章

  1. python代码检查工具_基于Python3的漏洞检测工具 ( Python3 插件式框架 )
  2. 嵌入式论文3000字_SCI英文论文一般多少字
  3. web软件测试 测试报告模板_杭州软件测试培训要多长时间?需要学习什么内容?...
  4. java生成数据插入hbase_hbase实战之javaAPI插入数据
  5. matlab矩阵初等变换矩阵,实验一 MATLAB基本操作及矩阵初等运算
  6. aspose 换行写_aspose.word 换行符 aspose.words换行符
  7. python中用def实现自动排序_漫画排序算法Python实现
  8. django开发个人博客
  9. git:如何让不同开发者提交在同一条直线上
  10. C#简易通讯录的开发试题