问题描述:

在开发过程中,发现网页突然开不了,突然断线,诡异的断开又重连.终端连接服务器后,通过输入
df -h


[root@ackh-office-srv ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/mapper/cl-root   50G   50G  683M   99% /
devtmpfs              48G     0   48G    0% /dev
tmpfs                 48G   84K   48G    1% /dev/shm
tmpfs                 48G   98M   48G    1% /run
tmpfs                 48G     0   48G    0% /sys/fs/cgroup
/dev/md126p2        1021M  176M  846M   18% /boot
/dev/mapper/cl-home  5.2T  1.3T  3.9T   25% /home
tmpfs                9.5G  4.0K  9.5G    1% /run/user/0
tmpfs                9.5G   16K  9.5G    1% /run/user/42
overlay               50G   50G  683M   99% /var/lib/docker/overlay2/7388d1c81c4cd4a42b629d9a1f156c022474444436c4683396d8b2d6ed0436c2/merged
shm                   64M     0   64M    0% /var/lib/docker/containers/1cd6335f1b67041fcd4a43617288cfd9fd0c534b0066de2156eadda00d433bb5/shm
overlay               50G   50G  683M   99% /var/lib/docker/overlay2/883ab66c0922719519e6a17e409428e703b009cd4e2f6566ac1a9fb480eed671/merged
shm                   64M     0   64M    0% /var/lib/docker/containers/00da0f419c08f9163ead3ad8b29f964a9679996dc3d9453a41679c05eb8b9840/shm
overlay               50G   50G  683M   99% /var/lib/docker/overlay2/b51eb5f1f20b4636693e590af65c9187a55ad6ea5485bfc88b49af1f2e9e8577/merged
shm                   64M  8.0K   64M    1% /var/lib/docker/containers/9306555ac084a7fa5529c2216d906543db215d910ca74715b8ebb61c7d19bac1/shm
overlay               50G   50G  683M   99% /var/lib/docker/overlay2/8cf90078979cbf73dc6d21f47a57af9dc80e4ce4461898ad2d70870667d58615/merged
shm                   64M     0   64M    0% /var/lib/docker/containers/10d1a1ea1506619a1b27305e5c6a709f389a8a5cf3dac69d7288472a2bec7e07/shm

通过上图可观察,挂载根目录的/dev/mapper/cl-root 和overlay特别占磁盘.


我发现磁盘空间不足后,刚开始的思路是到/下通过du -sh 来查找大文件

cd /                             //切换根目录
du -sh *                //在根目录底下搜寻大文件

[root@ackh-office-srv /]# du -sh *
0 1
0 bin
143M boot
84K dev
148K dump.rdb
50M etc
1.3T home
0 lib
0 lib64
0 media
0 mnt
3.5G opt
du: 无法访问"proc/870/task/870/fd/4": 没有那个文件或目录
du: 无法访问"proc/870/task/870/fdinfo/4": 没有那个文件或目录
du: 无法访问"proc/870/fd/4": 没有那个文件或目录
du: 无法访问"proc/870/fdinfo/4": 没有那个文件或目录
0 proc
2.1G root
du: 无法访问"run/user/42/gvfs": 权限不够
98M run
0 sbin
0 srv
4.0K stop.sh
0 sys
2.7M tmp
7.4G usr
21G var

红色是挂载nfs的也就是挂载根目录的var(docker)和usr和opt最多就30G,咋占了50G.发现当前系统任然存在大量可以使用的空间。大量剩余的磁盘空间不清楚怎么丢失了…

如果发现是因为磁盘目录满了,可以查询该目录下哪些大文件,然后依次rm删除无用的占用内存的文件.
参考:https://blog.csdn.net/qq_34246965/article/details/110038468


我也有遇见过此类问题,一般都是重启完事,因为磁盘坏道损坏有可能导致此问题。或 DF -i 查看inode使用率,inode不够用也会导致此问题。可看了inode也够用

[root@ackh-office-srv docker]# df -i
文件系统                Inode 已用(I)   可用(I) 已用(I)% 挂载点
/dev/mapper/cl-root   2826616 1329815   1496801      48% /
devtmpfs             12347387     515  12346872       1% /dev
tmpfs                12351426       6  12351420       1% /dev/shm
tmpfs                12351426     853  12350573       1% /run
tmpfs                12351426      16  12351410       1% /sys/fs/cgroup
/dev/md126p2           524032     374    523658       1% /boot
/dev/mapper/cl-home 550984064  964487 550019577       1% /home
tmpfs                12351426       4  12351422       1% /run/user/0
tmpfs                12351426      17  12351409       1% /run/user/42
overlay               2826616 1329815   1496801      48% /var/lib/docker/overlay2/7388d1c81c4cd4a42b629d9a1f156c022474444436c4683396d8b2d6ed0436c2/merged
shm                  12351426       1  12351425       1% /var/lib/docker/containers/1cd6335f1b67041fcd4a43617288cfd9fd0c534b0066de2156eadda00d433bb5/shm
overlay               2826616 1329815   1496801      48% /var/lib/docker/overlay2/883ab66c0922719519e6a17e409428e703b009cd4e2f6566ac1a9fb480eed671/merged
shm                  12351426       1  12351425       1% /var/lib/docker/containers/00da0f419c08f9163ead3ad8b29f964a9679996dc3d9453a41679c05eb8b9840/shm
overlay               2826616 1329815   1496801      48% /var/lib/docker/overlay2/b51eb5f1f20b4636693e590af65c9187a55ad6ea5485bfc88b49af1f2e9e8577/merged
shm                  12351426       2  12351424       1% /var/lib/docker/containers/9306555ac084a7fa5529c2216d906543db215d910ca74715b8ebb61c7d19bac1/shm
overlay               2826616 1329815   1496801      48% /var/lib/docker/overlay2/8cf90078979cbf73dc6d21f47a57af9dc80e4ce4461898ad2d70870667d58615/merged
shm                  12351426       1  12351425       1% /var/lib/docker/containers/10d1a1ea1506619a1b27305e5c6a709f389a8a5cf3dac69d7288472a2bec7e07/shm

在这期间,我还把/var下的docker的json日志和/opt下的java nohup.out文件删除. rm -rf XXXX.json.log以及rm -rf nohuo.out,发现磁盘空间没有减少,也就是没有变化.后来我找了资料,这叫僵尸文件,大意说文件虽然删除,但是进程还在,占的磁盘是不会释放的.且干掉该(deleted)进程有可能造成程序崩溃,停止运行,因为产生僵尸文件的进程是webapp应用,不能被kill,kill后,将会影响生产环境业务,但是磁盘也已经满了


解决问题:

得知删除文件还存在僵尸文件这种诡异的事后,看是否有状态为delete的文件

lsof |grep delete

COMMAND:进程的名称
PID:进程标识符
PPID:父进程标识符(需要指定-R参数)
USER:进程所有者
PGID:进程所属组
FD:文件描述符,应用程序通过文件描述符识别该文件。

[root@ackh-office-srv docker]# lsof |grep delete
command     PID PPID               USER   FD      type             DEVICE       SIZE         NODE            NAME
dockerd    1786 30961              root   38w      REG              253,0    4803128280    78891062 /var/lib/docker/containers/00da0f419c08f9163ead3ad8b29f964a9679996dc3d9453a41679c05eb8b9840/00da0f419c08f9163ead3ad8b29f964a9679996dc3d9453a41679c05eb8b9840-json.log (deleted)
java       3754                 jenkins   19r      REG              253,0       1484022   117579852 /tmp/jna4559948622136446323jar (deleted)
java       3754                 jenkins   22r      REG              253,0       2283188   117579857 /tmp/winstone4139804245682449191.jar (deleted)
qtp739498  3754  1610           jenkins   19r      REG              253,0       1484022   117579852 /tmp/jna4559948622136446323jar (deleted)
docker-co  4828                    root   21u     FIFO               0,19           0t0   101036059 /run/docker/containerd/1cd6335f1b67041fcd4a43617288cfd9fd0c534b0066de2156eadda00d433bb5/ff2708634883552f82185c36787788edf39efd14478bcac94da3d284fd90ca08-stdin (deleted)
PM2        6434                    root  cwd       DIR              253,0             6    20573326 /root/workspace/ackh_dcc/nuxt_dcc (deleted)
node       6434  6435              root  cwd       DIR              253,0             6    20573326 /root/workspace/ackh_dcc/nuxt_dcc (deleted)
tail       7559                    root    3r      REG              253,0        480157   111922606 /var/log/elasticsearch/mm-cluster-2020-09-06-1.log (deleted)
java      11332                    root  cwd       DIR              253,0             6      714168 /opt/online-read (deleted)
java      11332                    root    1w      REG              253,0       4296573      714170 /opt/online-read/nohup.out (deleted)
java      11332                    root    7r      REG              253,0     108837596     1371544 /opt/online-read/kkFileView-2.2.1-SNAPSHOT.jar (deleted)
java      11332 11333              root    7r      REG              253,0     108837596     1371544 /opt/online-read/kkFileView-2.2.1-SNAPSHOT.jar (deleted)
Service   11332 11368              root    1w      REG              253,0       4296573      714170 /opt/online-read/nohup.out (deleted)
)
PM2       16490                    root  cwd       DIR              253,0             6    20573326 /root/workspace/ackh_dcc/nuxt_dcc (deleted)
node      16490 16491              root  cwd       DIR              253,0             6    20573326 /root/workspace/ackh_dcc/nuxt_dcc (deleted)
java      18590                    root    1w      REG              253,0    5013822064    36434113 /opt/dcc_back/nohup.out (deleted)
java      18590                    root   57r      REG              253,0       1058776    33851535 /tmp/tomcat.4477088410858248213.8090/work/Tomcat/localhost/ROOT/upload_ece08897_119e_4133_9eb9_81dad51ec380_00000016.tmp (deleted)
http-nio- 18590  2570              root    2w      REG              253,0    5013822064    36434113 /opt/dcc_back/nohup.out (deleted)
http-nio- 18590  2570              root   57r      REG              253,0       1058776    33851535 /tmp/tomcat.4477088410858248213.8090/work/Tomcat/localhost/ROOT/upload_ece08897_119e_4133_9eb9_81dad51ec380_00000016.tmp (deleted)
java      19617                    root  cwd       DIR              253,0             6    20573326 /root/workspace
C1        19617 19652              root    7r      REG              253,0     108837686      714112 /opt/online-read/kkFileView-2.2.1-SNAPSHOT.jar (deleted)
VM        19617 19654              root    1w      REG              253,0         23307    21372120 /root/workspace/ackh_dcc/nuxt_dcc/nohup.out (deleted)
PM2       16490 16498              root  cwd       DIR              253,0             6    20573326 /root/workspace/ackh_dcc/nohup.out (deleted)

得到僵尸文件名称:

/opt/dcc_back/nohup.out以及/var/lib/docker/containers/00da0f419c08f9163ead3ad8b29f964a9679996dc3d9453a41679c05eb8b9840-json.log (deleted)

json.log进程号为1786

可以粗暴使用kill -9 pid

kill -9 1786

可以粗暴使用kill -9 1786,但注意可能会影响进程的运行这个内容中只有日志,不会被它处调用,所以直接删除进程是可行的。(产生nohup.out以及一些读写报告的僵尸文件的进程是webapp应用,kill后,再次启动就好,这将会影响暂时生产环境业务)

也可以这样说delete状态的文件指向很多不同端口监听,并且有几十个已建立的连接,要是kill掉,父进程可能运行异常


占用数据盘资源的是一个运行中的jar包,这个jar包以nohup形式运行,之前运维没有关闭nohup.out的输出导致出现了这么大的僵死文件。
我的做法是将其kill后再次启动,将结果送到回收站,以后可以避免出现这些问题。

再次启动时候可以用
nohup java -jar XXXX.jar >/dev/null 2>&1 &

/dev/null 表示将标准输出信息重定向到"黑洞"

2>&1 表示将标准错误重定向到标准输出(由于标准输出已经定向到“黑洞”了,即:标准输出此时也是"黑洞",再将标准错误输出定向到标准输出,相当于错误输出也被定向至“黑洞”)

完后问题解决完毕,磁盘占用恢复正常。

不影响业务运行解决磁盘空间方法如下

例如 /root/workspace/ackh_dcc/nohup.out (deleted)的进程号为16490

进入虚拟文件系统对应进程目录(cd /proc/16490/fd),将僵尸文件清空

cd /proc/16490/fd

注意,不用直接删除进程产生的僵尸文件,可能会影响进程的运行,这里我们不删除,只是清理文件中产生的内容(使用echo命令),这个内容中只有日志,不会被它处调用,所以直接删除是可行的。

ll |grep nohup.out //查看该进程虚拟文件路径下是否含有该文件
echo '' > 1       //写一个空的1文件进去,重置空间
df -h     //查看磁盘空间

解决Centos服务器/dev/mapper/cl-root或overlay挂载点/根目录磁盘内存满占用率持续高与实际磁盘内存不相符相关推荐

  1. win10内存占用率过高怎么办_win10系统内存占用过高怎么解决

    win10系统内存占用过高怎么解决?很多用户都将电脑内存以4GB为标准配备规格,但是仍然会有用户遇到内存不足的问题,不知如何解决的用户,请来看看下面的介绍吧. 使用电脑的时候,有时会遇到内存占用过高, ...

  2. kswapd0进程在CentOS下CPU占用率过高

    kswapd0进程在CentOS下CPU占用率过高 问题并不是内存不够那么简单 我自己解决问题的过程记录 问题并不是内存不够那么简单 今早到公司,开晨会,发现华为云上的测试环境应用访问不到了.晨会开完 ...

  3. 有没有命令让服务器cpu占用升高,怎样通过iisapp命令查找pid来解决IIS的cpu占用率过高问题...

    怎样通过iisapp命令查找pid来解决IIS的cpu占用率过高问题 更新时间:2009年03月01日 23:44:35   作者: 有些时候发现服务器的一些iis进程占用资源比较大,用下面的方法可以 ...

  4. win10服务器cpu占用过高,Win10 CPU占用率100%怎么办 Win10 CPU占用率过高解决方法

    Win10 CPU占用率100%怎么办 ?Win10系统CPU占用率过高的问题比较常见,下面为大家带来 Win10 CPU占用率过高解决方法 ,一起来看看. 方法1: 导致CPU占用的另一个原因可能是 ...

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

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

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

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

  7. java检测服务器磁盘空间占满_Java性能检测工具-记录一次通过jstack排查Linux服务器CPU占用率很高的实践...

    一.问题描述 Linux服务器的配置是4核16G,将war包部署到tomcat后,启动tomcat,发现内存占用率不高,但是CPU一直高达100%:浏览器输入相关url也无法访问该项目,且tomcat ...

  8. window服务器cpu过高的排查_线上服务器发生CPU占用率过高应该如何排查并定位问题?...

    国外开发者平台 HankerRank 发布的 2018 年开发者技能调查报告中有一项关于"雇主最看重哪些核心能力"的调查,结果显示如下: 排名前几的比较受重视的能力分别为:解决问题 ...

  9. window服务器cpu过高的排查_生产服务器CPU占用率过高排查过程

    一.问题详情 现象:API接口访问耗时过长,排查发现当前节点内存使用3.9G,CPU占用率295%. 当前节点已两周没发版,怀疑内存没有释放,可能是JVM垃圾回收的问题. 二.排查过程 1.定位问题进 ...

最新文章

  1. url传参参数编码的解码问题
  2. android phone驱动_一文带你掌握 Android 系统架构
  3. 利用数据集在水晶报表中显示图像
  4. android切换到上个页面,Android 返回上一个界面刷新数据
  5. 四个变量的图表怎么做_品牌策划方案怎么做?5步图文帮你绘制专业策划图表...
  6. 计算机中丢失了ll是什么意思,丢失了ntoskrnl.exe和hal.ll
  7. SAP License:PM实务
  8. 一览众山小的上一句是什么,怎么理解一览众山小的意思?
  9. MYSQL ERROR 1045 错误的解决办法 (转)
  10. php远程文件无法编辑,“脚本编辑器”远程文件编辑漏洞
  11. 第九届大唐杯省赛知识梳理-5G协议与信令(20%)
  12. 瑞星服务器版序列号 2009,瑞星序列号2009 瑞星杀毒软件序列号和ID
  13. BP神经网络python代码实现
  14. 自动控制理论(9)——奈奎斯特稳定判据
  15. todo Java注解
  16. php 文字合成图片,PHP图片和文字合成
  17. 哥德巴赫猜想“1+1″的证明(李扩继)
  18. hugeng007_tensorflow_demo
  19. Franka Emika Panda连接真实机械臂(一)
  20. MacBook M1配置Clion

热门文章

  1. 做游戏修改器的一点记录,有关大航海家3
  2. 天纵智能软件快速开发平台主次表数据管理插件
  3. JSON数组转Java List
  4. Cisco(28)——动态NAT
  5. Windows环境含第三方库代码编译的三种方式
  6. 洛谷 P7453 [THUSCH2017] 大魔法师
  7. 用虾扑 做 shopee 无货源模式可行吗?
  8. java计算机毕业设计网络游戏论坛平台源码+系统+数据库+lw文档+mybatis+运行部署
  9. 关于MybatisPlus使用Generator自动生成代码的实现(包含创建时间和更新时间的自动填充)
  10. 高通4G全网通210系列-MSM8909 (ARM Cortex-A7架构)