linux No space left on device由索引节点(inode)爆满引发500问题
inode是什么?
理解inode,要从文件储存说起。
文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。<br>这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。<br>这种储存文件元信息的区域就叫做inode,中文译名为”索引节点”。
最近网站编辑反应上传图片失败,网站页面也经常500错误
常规500错误查找https://www.zalou.cn/article/175431.htm找了一圈发现配置没问题。
查看了nginx error错误日志发现磁盘空间满了
用df -h命令查看了一下磁盘使用情况,发现空间还有剩余。
发现问题:后来用df -i查看了一下索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。
解决方法:删除无用的临时文件,释放inode。
可以查看 /tmp 目录下有很多临时文件。
也可以选择/var/spool/目录
输入一下命令查看/var/spool/下的文件个数
for i in /var/spool/; do echo $i; find $i |wc -l|sort -nr; done
看到有200多万文件
cd /var/spool/clientmqueue/
进入这个目录,删掉这些没用的文件,查看一下,60万文件吧,文件太多,
于是就用到了这个命令:
ls | xargs rm -rf
2或者这个命令
find . -name "*" | xargs rm -rf
可以分批的处理删除文件,如下图是删除后的效果:inode使用21%。好了
就是因为垃圾文件长时间没清理,导致清理文件花太多的时间,为了避免该类问题,最好对系统的垃圾文件进行定时清理,或者部署监视系统。
可以根据较大目录的文件占用情况,临时转移部分文件到占用磁盘较小的目录中。
以上就是本文的全部内容,希望对大家的学习有所帮助。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python 基础(八):与时间相关的模块
- 用 Python 实现一场环保无污染的烟花秀
- Python 基础(九):函数
- Python 基础(十二):文件基本操作
- Python 基础(十三):os 模块
- Python 基础(十四):错误和异常
- Python 基础(十五):枚举
- 一个老程序员的30年生涯回顾
- 经典 90 坦克大战 Python 版实现(支持单双人模式)
- Python 基础(十六):迭代器与生成器
- MySQL information_schema详解 COLUMNS
- MySQL information_schema详解 COLUMN_PRIVILEGES
- 一分钟学Python|Python的字典
- MySQL information_schema详解 ENGINES
- 一日一技:不用轮询,基于事件监控文件变动