mysql inode_MySQL Error--存储inode用完后报设备没有空间

问题描述:

磁盘有足够剩余空间,但在创建文件或文件夹时报错,提示“设备没有空间”。

问题原因:

当存储设备通过分区格式化为文件系统后,会分为两部分:

1、block部分: 存储的最小单位为扇区(Sector),8个连续的扇区为block,为提高效率,操作系统通常按照block来进行数据访问。

2、inode部分: 存储block的元数据信息,如文件创建者/创建时间/文件大小/文件block位置等。

每个分区的inode数量有限,当block有剩余,但inode用完时,系统也会提示磁盘空间不足。

问题排查:

查看各分区的inode使用情况

## 查看根目录下的inode使用:

df-lhi

正常的输出信息:

Filesystem Inodes IUsed IFree IUse%Mounted on/dev/sda1 1.3M 421K 831K 34% /tmpfs7.9M 1 7.9M 1% /dev/shm/dev/sda3 222M 40K 222M 1% /export

如果IUse%为100%,则表示该分区所有inode用完。

查看根目录下各目录的inode使用情况:

for i in /*;

do

node_count=`find $i | wc -l`

echo "$i : $node_count "

done

输出结果:

/bin : 112

/boot : 29

/dev : 818

/etc : 1548

/export : 40854

/home : 32

/lib : 3657

/lib64 : 394

/lost+found : 1

/media : 1

/mnt : 1

/opt : 18

/proc : 2371402

/root : 43

/sbin : 274

/selinux : 1

/srv : 1

/sys : 20774

/tmp : 10

/usr : 72055

/var : 358262

可以发现/var目录下使用较多,查看/var目录的使用:

for i in /var/*;

do

node_count=`find $i | wc -l`

echo "$i : $node_count "

done

最后定位到/var/spool/clientmqueue下面使用较多。

问题扩展

由于早期在配置cron进行定时作业时,未在文件头部配置MAILTO="",导致在/var/spool/clientmqueue下面创建大量小文件,导致inode被用完。

如果直接使用rm命令删除特定目录下大量小文件,会存在性能问题,推荐使用下面方式:

ls /var/spool/clientmqueue | xargs /bin/rm -rf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值