磁盘空间不足,但有空间

磁盘空间不足,但有空间

我有一个 DigitalOcean 服务器。我拿了一个基本的服务器进行测试。我开始收到这两个错误;

Unknown: open(/var/lib/php5/sess_heg8br5i1ye4skuuq1gsg7dp40, O_RDWR) failed: No space left on device (28)

PDOException: SQLSTATE[HY000]: General error: 1 Can't create/write to file '/tmp/#sql_417_0.MYI' (Errcode: 28)

当我使用时,df -Th我得到了以下结果,并且似乎我有了 5.9G 的更多空间可供使用。

Filesystem                Type      Size  Used Avail Use% Mounted on
udev                      devtmpfs  235M  4,0K  235M   1% /dev
tmpfs                     tmpfs      50M  344K   49M   1% /run
/dev/disk/by-label/DOROOT ext4       20G   13G  5,9G  69% /
none                      tmpfs     4,0K     0  4,0K   0% /sys/fs/cgroup
none                      tmpfs     5,0M     0  5,0M   0% /run/lock
none                      tmpfs     246M     0  246M   0% /run/shm
none                      tmpfs     100M     0  100M   0% /run/user

我不是服务器管理员,所以我真的不明白为什么我无法访问 5.9G 分区。

我不知道这是否相关,但我想我应该提一下我有一个图片目录,我在那里保存了超过 100 万个图像文件。我听说保留这些文件是个很糟糕的想法。我打算将它们组织到目录中,这样目录下的文件就会少很多。这会对 tmp 空间不足造成影响吗?

答案1

我不知道这是否相关,但我想我应该提到我有一个图片目录,其中保存了超过 100 万个图像文件。

这就是你的问题。每个目录和文件也消耗 1 个 inode,因此这无法解决你的问题。

df -i

显示你的 inode(检查你自己的系统有多少个空闲的 inode)例如:

Filesystem       Inodes  IUsed    IFree IUse% Mounted on
udev            1518973    590  1518383    1% /dev
tmpfs           1523785    843  1522942    1% /run
/dev/sda2       3049648 190226  2859422    7% /
tmpfs           1523785     15  1523770    1% /dev/shm
tmpfs           1523785      3  1523782    1% /run/lock
tmpfs           1523785     18  1523767    1% /sys/fs/cgroup
/dev/sda1             0      0        0     - /boot/efi
/dev/sda5       2256576  12935  2243641    1% /home
/dev/sdb1      61054976   1638 61053338    1% /discworld
cgmfs           1523785     14  1523771    1% /run/cgmanager/fs
tmpfs           1523785     33  1523752    1% /run/user/1000

这些空间用完也会导致“设备上没有剩余空间”。

您在创建分区时设置了 inode 的数量,因此当磁盘包含如此多的文件时不容易修复(您需要备份它们,重新创建文件系统,然后恢复它们)。

您最好创建第二、第三、第四个分区并将这些文件存储在这些分区上。

相关内容