磁盘空间占满排查
今天服务器的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的大小。