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

news/2024/7/3 2:46:53

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

问题原因:
当存储设备通过分区格式化为文件系统后,会分为两部分:
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% /
tmpfs            7.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

 

转载于:https://www.cnblogs.com/gaogao67/p/10883049.html


http://www.niftyadmin.cn/n/3682148.html

相关文章

页面部分缓存概述

页面部分缓存概述 页面部分缓存允许缓存页的部分内容,其他部分则为动态内容。由于大部分Web页面的某些部分在每一次请求时都需要进行更改,所以,在这种情况下,就只能缓存页面的一部分,即页面部分缓存。 页面部分缓…

Java实现二维数组的排列组合

今天同事在做一个需求的时候&#xff0c;需要设计到二维数组的排列组合为题&#xff0c;就趁这个机会&#xff0c;实现了这个功能&#xff0c;现记录一下&#xff1b; public static void main(String[] args) {List<String[]> list new ArrayList<>();list.add(…

初学linux时遇到的那些哭笑不得的问题

1.终端中无法输入密码&#xff1f; 在终端输入密码&#xff0c;是不会在输入密码的时候看见星号或者圆点符号的。它不会有任何输入密码的视觉指示&#xff0c;也不会有任何光标移动&#xff0c;什么也不显示。 其实是输进去了&#xff0c;只是没有明文显示出来而已。输入完成后…

页面部分缓存

页面部分缓存是指输出缓存页面的某些部分&#xff0c;而不是缓存整个页面内容。实现页面部分缓存有两种机制&#xff1a;一种是将页面中需要缓存的部分置于用户控件&#xff08;.ascx文件&#xff09;中&#xff0c;并且为用户控件设置缓存功能&#xff08;包含用户控件的ASP.N…

Linux常用查询文件或日志命令

常见查询文件内容命令汇总如下&#xff1a; cat filename 查看日志&#xff0c;会打开整个文件&#xff0c;直接跑到最后面。tac filename 查看日志&#xff0c;会打开整个文件&#xff0c;倒序显示&#xff0c;不常用。more filename 查看日志&#xff0c;可以上下翻页&#…

loj#6285 数列分块入门 9 ( 回 滚 )

题目 &#xff1a; 链接 &#xff1a;https://loj.ac/problem/6285 题意&#xff1a;给出一个长为 n的数列&#xff0c;以及 n个操作&#xff0c;操作涉及询问区间的最小众数。 思路&#xff1a;虽然这不是一道 回滚莫队题&#xff0c;就是 暴力分块 的题&#xff0c; 但是 还…

使用Java实现一个缓存

啥也不说&#xff0c;直接上代码&#xff0c;欢迎指正。 package com.example.demo.cache;/*** className: JdkCache* description: TODO 类描述* author: Yang.H* date: 2021/8/2014:26**/import lombok.extern.slf4j.Slf4j;import java.util.Date; import java.util.Map; im…

【Java基础】之集合

集合 集合继承图 Collection 继承图 常用方法 1. add:添加元素 2. remove:删除指定元素&#xff0c;或指定下标。重载&#xff1b; 3. contains&#xff1a;查找指定元素是否存在 4. size&#xff1a;获取元素的个数 5. isEmpty:判断集合是否为空&#xff1b; 6. clear&…