如何调整系统inode

什么是inode

inode是指Unix文件系统中的索引节点(index node),用于存储关于文件或目录的元数据信息,例如文件大小、拥有者、权限、时间戳等。每个文件或目录在文件系统中都有一个唯一的 inode 号码,通过这个号码可以快速定位并访问文件的元数据信息。因此,inode 在文件系统中起着非常重要的作用,它记录了文件或目录的属性和位置,而实际的文件数据则存储在数据块中。

查看文件/目录的inode信息

bash 复制代码
[root@localhost ~]# stat flannel.yaml
  File: 'flannel.yaml'
  Size: 4821      	Blocks: 16         IO Block: 4096   regular file
Device: fd01h/64769d	Inode: 266507      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-12-08 16:58:33.373412736 +0800
Modify: 2023-12-08 16:58:27.716315686 +0800
Change: 2023-12-08 16:58:27.716315686 +0800
 Birth: -

查看inode的使用情况

bash 复制代码
[root@localhost ~]# df -i
Filesystem        Inodes    IUsed     IFree IUse% Mounted on
/dev/sda3         262144   262104        40  100% /data0
devtmpfs        16426671      620  16426051    1% /dev
tmpfs           16429256        6  16429250    1% /dev/shm
tmpfs           16429256     1481  16427775    1% /run
tmpfs           16429256       16  16429240    1% /sys/fs/cgroup
/dev/sda1         786432   172461    613971   22% /
/dev/sda5         524288       39    524249    1% /usr
/dev/sda6         524288    14089    510199    3% /var

调整inode数量

如需要调整inode节点的数量需要进行以下几步:

卸载文件系统

bash 复制代码
[root@localhost ~]# umount /data0

建立文件系统,指定inode节点数

bash 复制代码
[root@localhost ~]# mkfs.ext4 /dev/sda3 -N 18276352

修改fstab文件

bash 复制代码
[root@localhost ~]# vi /etc/fstab
/dev/sda6 /data0 ext4 defaults 1 2

挂载文件系统

csharp 复制代码
[root@localhost ~]# mount -a

查看修改后的inode参数

bash 复制代码
[root@localhost ~]# dumpe2fs -h /dev/sda3 | grep node

注意:调整inode数会格式化磁盘,执行前应确定磁盘上没有重要数据或是先备份数据

清理 inode

bash 复制代码
# 分析根目录下的每个二级目录下有多少个文件
for i in /*; do echo $i; find $i | wc -l; done

逐层进入inode占用最高的目录,继续执行上述指令,逐步定位占用过高空间的文件或目录,最后进行相应清理。

本次故障经查发现/var/spool/postfix/maildrop目录占用较高,永久性解决该问题需要进行如下配置修改:

bash 复制代码
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO="" # 默认为MAILTO=root

[root@localhost ~]#  crontab -e 
MAILTO="" # 在最前面直接加入MAILTO=""
46 8 * * * /usr/sbin/ntpdate tiger.com.cn >/dev/null

最后重启crond服务,之后执行crond定时任务时将不会再发送邮件。

如果是var/spool/clientmqueue占用,两种方法:

  • 删除此目录;
  • 在cron 任务中的后面加上 > /dev/null 2>&1
相关推荐
蓝易云1 小时前
Qt框架中connect()方法的ConnectionType参数使用说明 点击改变文章字体大小
linux·前端·后端
花落已飘1 小时前
多线程 vs 异步
linux·网络·系统架构
PanZonghui2 小时前
Centos项目部署之Nginx部署项目
linux·nginx
码出钞能力3 小时前
linux内核模块的查看
linux·运维·服务器
星辰云-3 小时前
# Linux Centos系统硬盘分区扩容
linux·运维·centos·磁盘扩容
聽雨2373 小时前
02每日简报20250704
linux·科技·金融·生活·社交电子·娱乐·媒体
Maki Winster4 小时前
Peek-Ubuntu上Gif录制工具-24.04LTS可装
linux·ubuntu·peek
Maki Winster5 小时前
在 Ubuntu 下配置 oh-my-posh —— 普通用户 + root 各自使用独立主题(共享可执行)
linux·运维·ubuntu
守望时空335 小时前
Linux下KDE桌面创建自定义右键菜单
linux
l0sgAi5 小时前
vLLM在RTX50系显卡上部署大模型-使用wsl2
linux·人工智能