磁盘空间占满排查

Published: by Creative Commons Licence

  • Tags:

今天服务器的Java服务突然挂了,重启也起不起来。看了下内存好像不多了,但是应该够服务器使用。

调用jps查看java服务时,报了

$ jps
Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file:
   21445
Try using the -Djava.io.tmpdir= option to select an alternate temp location.

20817 -- process information unavailable
21445 Jps

上面显示磁盘空间不足,无法创建内存交换文件。

之后查看磁盘占用情况。

$ df -hl
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root  197G  197G   20K  100% /
devtmpfs                  16G     0   16G    0% /dev
tmpfs                     16G   12K   16G    1% /dev/shm
tmpfs                     16G  626M   16G    4% /run
tmpfs                     16G     0   16G    0% /sys/fs/cgroup
/dev/sda1               1014M  189M  826M   19% /boot
tmpfs                    3.2G     0  3.2G    0% /run/user/0
tmpfs                    3.2G     0  3.2G    0% /run/user/1066
tmpfs                    3.2G     0  3.2G    0% /run/user/1071
tmpfs                    3.2G     0  3.2G    0% /run/user/1074
tmpfs                    3.2G     0  3.2G    0% /run/user/1064
tmpfs                    3.2G     0  3.2G    0% /run/user/1078
tmpfs                    3.2G     0  3.2G    0% /run/user/1032
tmpfs                    3.2G     0  3.2G    0% /run/user/1072
tmpfs                    3.2G     0  3.2G    0% /run/user/1079
tmpfs                    3.2G     0  3.2G    0% /run/user/1076
tmpfs                    3.2G     0  3.2G    0% /run/user/1077
tmpfs                    3.2G     0  3.2G    0% /run/user/1000
tmpfs                    3.2G     0  3.2G    0% /run/user/1061
tmpfs                    3.2G     0  3.2G    0% /run/user/1020

可以看到确实是磁盘空间不足了,但是上面应该没有特别大的文件,因此下面要排查是到底是哪些文件。

du -s path/*可以查看目录path下文件和文件夹的大小,之后利用sort逆序排序输出。

$ du -s /* | sort -nr
47477572        /home
18144808        /mnt
3394852 /usr
1881364 /root
1582048 /opt
663588  /var
640560  /run
159972  /boot
46280   /data
34940   /etc
18968   /tmp
1384    /tmpwxbExcel

之后发现最大的目录是/home,继续排查/home

$ du -s /home/* | sort -nr

循环往复,最后发现是日志文件过多了,足足有几十G的大小。