如何调整系统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
相关推荐
wdfk_prog5 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
盟接之桥5 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿6 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘6 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
Fcy6487 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满7 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠7 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Gary Studio7 小时前
rk芯片驱动编写
linux·学习
mango_mangojuice7 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
Harvey9037 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s