首页 > 其他 > 详细

记一次服务器宕机处理过程(cpu满负荷,存储爆满)

时间:2020-07-16 19:20:24      阅读:51      评论:0      收藏:0      [点我收藏+]

发现


 

当天准备在服务器上部署一套iot平台,使用宝塔linux登陆服务器配置一下网站,结果在宝塔首页发现:负载状况-100%;cpu使用-100%;存储空间-47G/50G。心中一惊,想起前几天在服务器上部署了一套测试平台,后来测试完了就删掉了,是不是进程没有停干净呢?抱着这个想法,我开始寻找问题。

查找问题与解决


 

(1)实现想到使用指令top看一下有什莫高运行的进程,然后发现,运行进程中没有内存占用太大的。

(2)使用“ps aux | grep 关键词”筛选一下上次运行的测试平台是否有运行进程残余,对残余进程使用kill进行杀死,无法杀死的使用指令"ps -ef | grep 进程号"查找其父进程,如对现用进程无影响,可使用“kill -9 进程id”进行杀死。

  消除掉这些残余进程后,cpu负载跟使用都明显降低。

(3)使用“df -h”查看存储空间使用状况,结果发现确实是满存储了,然后使用“du -sh 目录地址/*”对根目录的文件进行大小计算,结果发现有个文件的大小有30G,进入改目录,继续使用“du -sh 目录地址/*”对文件大小进行计算,结果发现代表回收站的文件夹存储有27G,找到了问题所在。

(4)使用宝塔面板跟命令行看回收站内没有多少文件,于是使用宝塔面板清空回收站,之后使用df查看存储大小,没有变化,依然47G/50G,但是用du查看已经没有较大的文件了。

(5)来自网友的智慧,这种情况一般是由于“存在进程对某个文件进行不断的写操作,该文件被删除后,该进程依然锁定该文件所对应的存储空间,文件被删除时并没有释放内存空间,所以有了df与du指令的内存计算差异。

(6)使用指令”lsof -n | grep delete"查找被删除的文件仍然占有的内存空间

技术分享图片

 

   发现确实有进程锁定被删除的文件,并且有大量内存没有被释放。

(7)由于锁定内存所对应的文件已不存在,所以我们可以使用" kill -9 进程ID"杀死进程,或者重启该进程,或者重启操作系统,我选择的是kill进程,之后df发现内存大小恢复正常。

教训


停止项目运行时,一定要全面停止该项目所启动的进程及服务,不要莽撞的在进程停止之前删除源文件,这可能造成无法挽回的后果。切记切记!!

 

记一次服务器宕机处理过程(cpu满负荷,存储爆满)

原文:https://www.cnblogs.com/smile-lankit/p/13324284.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!