Ubuntu磁盘空间满处理过程分享

2023/08/15

这篇文章发布于 495 天前,部分信息可能已经发生变化。

起因

用户反馈FineReport不能登录,Xshell登录Ubuntu 20发现硬盘空间已满,清理几个大文件释放3G空间后,发现FineReport 依旧无法启动。

进一步分析

  • df -h显示磁盘空间有3.3G可用,但是df -i显示磁盘inode资源占用100%。

image-20230815102059768

inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。

这种情况的原因通常是:尽管那个分区的磁盘占用率未满,但是inode已经用完,应该是该磁盘的某些目录下存在大量的小文件导致。尽管小文件占用的磁盘空间并不大,但是数量太多,inode用尽。

解决问题

初步判断是FineReport 备份和日志导致大量文件占用空间,经过排查果然“/www/wwwroot/fr/tomcat-linux/webapps/webroot/logs/”有大量文件,清空日志目录后空间释放40%左右,inode占用100%变为10%;

  • 重启TOMCAT后FineReport正常运行。

image-20230816084656055