我有一个 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 的数量,因此当磁盘包含如此多的文件时不容易修复(您需要备份它们,重新创建文件系统,然后恢复它们)。
您最好创建第二、第三、第四个分区并将这些文件存储在这些分区上。