【inode】Linux服务器inode索引节点用满原因以及解决方法

系统出现异常

我们团队的阿里云服务器在前几天运行过程中,服务器CPU负载长时间达到100%,并且不能通过ssh连接服务器。
经过重启服务器后对服务器进行连接,发现

  • 服务器上的crontab不能正常运行
  • php-fpm服务不能正常开启

crontab的报错提示为

正在启动 crond:crond: can’t open or create /var/run/crond.pid: 设备上没有空间

php-fpm的报错提示为

Fatal Error Unable to create lock file: Bad file descriptor (9)

问题排查

磁盘空间

由于crontab的反馈是没有空间,于是开始对服务器的磁盘空间进行检查

[root@********** ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G   13G  6.5G  66% /
tmpfs           1.9G     0  1.9G   0% /dev/shm  

发现磁盘空间是够用的。

inode


[root@****** ~]# df -i
Filesystem      Inodes   IUsed  IFree IUse% Mounted on
/dev/xvda1     1310720 1306882   3838  100% /
tmpfs           490143       1 490142    1% /dev/shm

发现磁盘上的inode空间被全部耗尽

分析问题

出现inode被耗尽的原因主要是大量的碎片文件和小文件占用的inode的使用。

Linux上的inode的原理文章很多,不再赘述。

解决方法

根据和阿里云售后工程师的沟通,解决inode用满的方式有下面几种

  1. 排查清理服务器内无效文件、碎片文件,垃圾文件。
  2. 转移非在用的数据到数据盘或本地存档。
  3. 考虑通过自定义镜像来更换系统时扩容来增加iNode容量。

解决实践

这里采用了第三种方式

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

经过系统盘的扩容,系统盘从原来的20G扩充为40G,同时inode的容量也变成了原来的两倍。


[root@********** ~]# df -i
Filesystem      Inodes   IUsed   IFree IUse% Mounted on
/dev/xvda1     2621440 1311396 1310044   51% /
tmpfs           490143       1  490142    1% /dev/shm
[root@********* ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       40G   13G   25G  33% /
tmpfs           1.9G     0  1.9G   0% /dev/shm

参考资料

后记

技术人员的需要经历一款产品的调研、开发、部署、迭代,这样才能够得到全面的成长。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值