linux系统报警怎么办,常见Linux系统故障和解决方法

常见Linux系统故障和解决方法

发布时间:2020-06-06 14:48:19

来源:亿速云

阅读:212

作者:Leah

栏目:云计算

这篇文章给大家分享的是常见的Linux系统故障和解决方法。在使用系统的过程中总会有各种各样的故障,所以需要不断的排查故障,为此分享给大家做个参考,一起来看看系统故障的原因以及解决方法。

67588a409fa459fa471cc64ddb86ec57.png

线上Linux系统故障的原因通常包括以下几个方面:

一、CPU使用率过高

一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。排查技巧如下:

1)通过top命令定位占用CPU高的进程。比如进程PID41843占用CPU过高,明显存在问题,定位到了进程id。当然如果你想只观察进程PID41843的CPU和内存以及负载情况,可以使用命令:top -p 41843

2)通过top命令定位问题进程中每个线程占用CPU情况。使用命令:top -p 41843 -H

3)通过jstack 命令定位问题代码。比如发现线程PID41892占用的CPU过高,就将这个PID转换成16进制,其中PID41892转化成16进制为a3a4。使用如下命令命令定位问题代码:jstack 41892 | grep a3a4

二、内存占用过高

在Java开发中,常见的异常及解决方法如下:

java.lang.OutOfMemoryError: PermGen space

异常出现原因:应用中有很多CLASS的话,就很可能出现PermGen space错误。WEB或者APP用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)就会产生此错误信息。

解决方法:调整PermSize、MaxPermSize的大小;减少jar重复使用,重复占用内存。

java.lang.OutOfMemoryError: Java heap space

异常出现原因:在JVM中,如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

异常原因排查步骤:

1)通过jstat命令查询gc情况。通过top命令定位到内存占用过高的进程PID后,排查该进程的GC情况,命令:jstat -gccause 41843 2000

2)通过jmap命令查询进程实体类内存占用情况。如果步骤1中发现,gc非常频繁,则可以使用jmap命令查询进程实体类内存占用情况。命令:jmap -histo:live 41843 | head -n 100

3)通过jmap命令查询进程堆的使用情况。如果以上没有查出问题,可以看看进程中,新生代、老年代、永久代的使用情况。命令:jmap -heap 41843

如果发现频繁的gc是因为新生代、老年代、永久代分配的大小有问题,则可以通过修改设置解决。

永久代解决方法:调整PermSize、MaxPermSize的大小;减少jar重复使用,重复占用内存。

新生代、老年代解决方法:调整Xms -Xmx -Xmn的大小。

关于常见Linux系统故障和解决方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值