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.jb51.net/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%。好了

就是因为垃圾文件长时间没清理,导致清理文件花太多的时间,为了避免该类问题,最好对系统的垃圾文件进行定时清理,或者部署监视系统。

可以根据较大目录的文件占用情况,临时转移部分文件到占用磁盘较小的目录中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Linux下使用inode删除指定文件方法示例

    前言 众所周知在Linux中,有时候会遇到文件名是乱码或者是某些特殊中文的文件,这时候通过文件名就很难删除. 同时,对于linux中的任何一个文件都必然有其唯一的inode值,这时候就可以通过inode来删除异常文件名的文件. 操作的对象一般为类似下面的文件: [root@server tmp]# ll 总用量 61404-rw-r--r-- 1 root root 0 6月 16 14:58 ? -rw-r--r-- 1 root root 0 6月 19 12:29 ?? -rw-r--r-

  • Linux中关于inode的知识总结

    背景 最近在复习Linux命令,到df的时候发现了一个之前忽略的东西.也就是 -i 这个选项,列出文件系统分区的inode信息.这个inode,是个什么东西? inode是用来做什么的 inode是用来存储文件元信息的区域.中文译名叫做"索引节点". 关于inode的背景知识 我们先复习下文件存储的一些内容.我们知道,文件存储在硬盘上,硬盘的最小存储单元呢,又被称为扇区,扇区的大小是512字节. 操作系统在硬盘上读取信息时,是按照一次性读取多个扇区的方式来的,而这多个扇区也叫块.通常,

  • Linode Xen 下 grsecurity >= 4.3 崩溃问题

    自从 Linux 4.3 开始,在 Linode 上使用 PaX/grsecurity 时,内核会在被 pv-grub 执行后不久立即崩溃.由于崩溃是在启动后极早期立刻发生的,没有任何可以用来调试的日志,同时公司也不是盖子开的,也没有办法得到母机上有意义的调试信息.这导致了盖子的 VPS 内核从去年 12 月开始被锁定在 4.2.7.由于不知什么时候产生了 Linode 东京机房会在 2016 年 6 月从 Xen 迁移到 KVM 的错觉,也没有花精力去尝试调试这个问题. 然而今年 Linode

  • linux No space left on device由索引节点(inode)爆满引发500问题

    inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block).<br>这种由多个扇区组成的"块",是文件存取的最小单位."块"的大小,最常见的是4KB,即连续八个 sector组成一个

  • 详解Linux索引节点inode

    1.inode简介 理解inode,要从文件储存说起.文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB).操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block).这种由多个扇区组成的"块",是文件存取的最小单位."块"的大小,最常见的是4KB,即连续八个 sector组成一个 block.文件数据都储

  • Linux的文件描述符、文件指针、索引节点详情

    目录 Linux--文件描述符.文件指针.索引节点 一.Linux -- 文件描述符 1.文件描述符 Fd 2.系统级的文件描述符表 3.文件系统的inode表 二.文件指针 *FILE 三.索引节点 Inode 1.Inode特殊作用 四.拓展 1.磁盘结构 Linux--文件描述符.文件指针.索引节点 一.Linux -- 文件描述符 1.文件描述符 Fd 当进程打开文件或创建新文件时,内核会返回一个文件描述符(非负整数),用来指向被打开的文件,所有执行I/O操作的系统调用(read.wri

  • Linux中出现“No space left on device”错误的排查与解决方法

    前言 最近这两天登陆服务器,发现用 wget 下载文件的时候提示"No space left on device",而且连使用 tab 键进行补全时也会提示该错误. 之前遇到过一次这种问题,是由于磁盘空间被占满了,导致无法创建新文件.正常情况下,删除一些文件来释放空间,即可解决该问题. 当我使用 df 命令查看分区情况时,结果如下: # df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 29G 29G 0 100% /

  • Apache启动报错No space left on device: AH00023该怎么解决

    Apache启动报错No space left on device: AH00023错误可能是进程导致了,虽然小编不知道什么原因但网上提供的解决办法确实是可以解决我们的问题,下面来看看. 对于这类错误是因为linux系统的ipc信号量造成的,apache启动时,会创建很多子进程.他们是通过信号量来和子进程进行通信的. 信号量介绍: 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信.本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取

  • mysql:Can't start server: can't create PID file: No space left on device

    解决案例一: 今天公司服务器上所有的网站都出现问题,有的打开没有数据,有的直接是空白. 我的第一反应就是数据库挂了.打开远程,进了系统,service mysqld stop 失败.service mysqld start等了好大一会,提示Timeout error occurred trying to start MySQL Daemon 一开始以为是mysql用户问题,查询系统用户完全没有问题. 打开log日志一看,问题出现了Can't start server: can't create

  • CentOS 出现no space left on device错误解决办法

    我用的阿里云的CentOS服务器,用的nginx+apache,最近启动nginx报28:no space left on device的错误,就是磁盘满了 一:解决 1.使用命令:df -lk 发现果然有个磁盘已满 2.使用命令:du --max-depth=1 -h  查找大文件,发现/home文件夹下有17G的东西,因为我的apache是装在/home下的,肯定是网站运行的日志文件占用的空间 3.进入apache下的logs目录 使用命令:ls -lht 查看文件的大小,果然有个8.6G文

  • mysql:Can't start server: can't create PID file: No space left on device

    解决案例一: 今天公司服务器上所有的网站都出现问题,有的打开没有数据,有的直接是空白. 我的第一反应就是数据库挂了.打开远程,进了系统,service mysqld stop 失败.service mysqld start等了好大一会,提示Timeout error occurred trying to start MySQL Daemon 一开始以为是mysql用户问题,查询系统用户完全没有问题. 打开log日志一看,问题出现了Can't start server: can't create

  • Linux网络启动问题:Device does not seem to be present解决办法

    Linux网络启动问题:Device does not seem to be present解决办法 在整虚拟机时候经常会遇到虚拟机拷贝,然而拷贝之后网络配置会遇到错误 service network restart启动网络时候提示如下错误: Device does not seem to be present 解决步骤 1.ifconfig -a 查看当前网卡 2.修改网络配置文件, vi /etc/sysconfig/network-scripts/ifcfg-eth0 在原来文件的基础上,

  • Apache No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed

    更换ssl证书后,重启Apache失败. 查看Apache的error日志发现: 复制代码 代码如下: [Fri May 20 18:07:23 2011] [crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed [Fri May 20 18:08:22 2011] [crit] (28)No space left on device: mod_

随机推荐