MySQL · 案例分析 · 磁盘空间不足

问题现象

1
2
3
4
5
6
7
8
9
10
11
12
13
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos_cosmoim--zdyq05-root 100G 13G 87G 13% /
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 130M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda1 497M 172M 326M 35% /boot
/dev/mapper/centos_cosmoim--zdyq05-data 888G 581G 308G 66% /data
tmpfs 13G 12K 13G 1% /run/user/42
tmpfs 13G 0 13G 0% /run/user/1001
tmpfs 13G 0 13G 0% /run/user/1002
tmpfs 13G 0 13G 0% /run/user/0

原因分析

文件排序命令

1
2
3
4
5
6
7
8
9
10
11
12
13
$ du -sxh /dir/* | sort -rh | head -5

du
-s:仅显示总计
-x:以一开始的文件系统为准,忽略其他不同文件系统的目录
-h:以可读形式显示文件大小

sort
-r:倒序排序
-h:以可读数字进行比较

head
-n:打印文本的前n行

多次执行查找最大文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ du -sxh /data/* | sort -rh | head -5
339G /data/mysql
243G /data/backup
4.0K /data/backup.sh

$ du -sxh /data/mysql/* | sort -rh | head -5
267G /data/mysql/cosmo_im_1004
1.1G /data/mysql/mysql-binlog.000944
1.1G /data/mysql/mysql-binlog.000943
1.1G /data/mysql/mysql-binlog.000942
1.1G /data/mysql/mysql-binlog.000941

$ du -sxh /data/mysql/cosmo_im_1004/* | sort -rh | head -5
231G /data/mysql/cosmo_im_1004/bns_pm_pokayoke.ibd
3.8G /data/mysql/cosmo_im_1004/bns_pm_scanscehistory.ibd
3.5G /data/mysql/cosmo_im_1004/bns_pm_scanhistory_month.ibd
3.4G /data/mysql/cosmo_im_1004/bns_io_pm_pokayoke.ibd
3.0G /data/mysql/cosmo_im_1004/bns_pm_operation.ibd

最终,确定最大文件是 /data/mysql/cosmo_im_1004/bns_pm_pokayoke.ibd