我在 /var 上的空间在哪里被使用?

5 xfs ext2 debian-lenny

我是 linux 管理员新手,现在负责 3 节点 Tomcat 集群的操作系统。(幸运的是,Tomcat 由 DEV 处理。)

我对我们的监控解决方案感到震惊,即 server01 上的 /var 仅剩 172MB 可用空间。很可能是因为 /var/log 确实填满了。

所以我调查了:

server01:/var# for i in $(ls); do du -sh $i; done
3.5M backups
100M cache
51M lib
0   local
0   lock
598M log
0   mail
0   opt
40K run
32K spool
144K tmp
4.0K www
Run Code Online (Sandbox Code Playgroud)

如果我总结一下,我最终会使用大约 760MB 的东西。如果我深入研究目录树,数字不会改变。所以这是正确的。

但是,如果我执行 df -h,我最终会得到完全不同的 /var 数字。df 显示使用了 3.0G 中的 2.8G。

server01:/var# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             950M  205M  697M  23% /
tmpfs                 2.0G     0  2.0G   0% /lib/init/rw
udev                  2.0G  4.0K  2.0G   1% /dev
/dev/sda3             961M   33M  928M   4% /tmp
/dev/dm-0             2.0G  506M  1.5G  26% /usr
/dev/dm-1             3.0G  2.8G  172M  95% /var
/dev/dm-2              20G   17G  3.3G  84% /home
Run Code Online (Sandbox Code Playgroud)

有趣的是,其他 2 个节点报告在 /var 上使用的空间甚至更多。因为节点 2 和 3 上的 /var/log/ 消耗了 200-300MB 以上的空间。但是分区和底层 LVM 在所有 3 个节点上具有相同的大小。

在 server02 和 server03 上 df -h 报告一切都很好,从 3.0GB 开始只使用了 1.0 到 1.2GB。

那么我的空间在哪里被使用?

我听说那些叫做 inode 的小混蛋并检查了这一点。df -i 报告:

server01:/var# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1             123648    6099  117549    5% /
tmpfs                 506908       3  506905    1% /lib/init/rw
udev                  506487     675  505812    1% /dev
/dev/sda3             987968       7  987961    1% /tmp
/dev/dm-0            2048000   19786 2028214    1% /usr
/dev/dm-1             705808    1807  704001    1% /var
/dev/dm-2            13619632    5906 13613726    1% /home
Run Code Online (Sandbox Code Playgroud)

在 server02 和 server03 上:

server03:/var# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1             123648    6100  117548    5% /
tmpfs                 506908       3  506905    1% /lib/init/rw
/dev                  506487     675  505812    1% /dev
/dev/sda3             987968       7  987961    1% /tmp
/dev/dm-0            2048000   19784 2028216    1% /usr
/dev/dm-1            3096576    1758 3094818    1% /var
/dev/dm-2            13113840    5642 13108198    1% /home
Run Code Online (Sandbox Code Playgroud)

所以 server01 上的 /var 有 705.808 个 inode,而 server02 和 server03 上的 /var 有 3.096.576 个 inode。但这真的是原因吗?因为每个节点上只使用了 1%。

如果是,如何增加 inode?(所有文件系统都是 XFS 的 / 即 ext2)

/etc/fstab 在所有 3 个节点上都是相同的。操作系统是带有内核 2.6.35.4 的 Debian Lenny 64 位。

问候

Red*_*ick 3

/var/log 已填满

如果删除进程打开写入的日志文件,文件名会消失(所以 du 看不到?),但分配的空间仍然分配,并且随着进程继续写入,分配的空间可能会增加。

如果日志是 TomCat 日志,您需要告诉 Tomcat 重新打开它的日志文件。

请注意本例中的“copytruncate” 。我不知道这是否适用于你的情况。