尽管分区未满,但无法写入文件

尽管分区未满,但无法写入文件

我遇到了一个奇怪的问题,到目前为止我找不到任何帮助。我在 Ubuntu 14.10 Root Server 上运行一个网站。该网站使用 Smarty (www.smarty.net) 进行缓存。该网站非常大,因此三天后缓存目录就会超过 50GB,这很正常。该问题可以描述如下:

  • 正常运行三天后,系统因缓存系统无法再写入任何缓存文件而关闭
  • 磁盘使用情况显示没有任何完整分区:

    df -Th
    Filesystem           Type      Size  Used Avail Use% Mounted on
    /dev/mapper/vg0-root ext4       99G  2.7G   91G   3% /
    none                 tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
    udev                 devtmpfs   32G  4.0K   32G   1% /dev
    tmpfs                tmpfs     6.3G  860K  6.3G   1% /run
    none                 tmpfs     5.0M     0  5.0M   0% /run/lock
    none                 tmpfs      32G     0   32G   0% /run/shm
    none                 tmpfs     100M     0  100M   0% /run/user
    /dev/mapper/vg0-tmp  reiserfs   50G   33M   50G   1% /tmp
    /dev/md0             ext3      992M   40M  901M   5% /boot
    /dev/mapper/vg0-home ext4       50G   21G   26G  46% /home
    /dev/mapper/vg0-var  ext4      220G   85G  124G  41% /var
    
  • 网站存储在 /var 中,但只占用了 41%

  • 如果我删除 /var 中的任何文件(我没有删除缓存文件,因此文件权限不是问题),系统就会重新启动并运行

一定达到了配额,因为删除任意文件就可以解决问题。我的问题是,是否有人知道 Ubuntu 中的默认目录配额,以及如何确定是否达到了配额。当然,最终的解决方案是删除该配额并允许使用该分区中剩余的 60% 空间。

任何帮助都将不胜感激。谢谢 Martin

答案1

您应该使用 Michael 上面给出的命令 df -i 检查 inode。您的服务器可能由于缓存而消耗了大量 inode 数量。

相关内容