如果我做
me@server:/home/me# service apache2 restart
在我的 LXC-VPS 上(节点服务器负载不高),我得到了
Error: No space left on device
df -h
告诉我有足够的空间
/dev/loop1 394G 72G 303G 20% /
none 100K 0 100K 0% /dev
cgroup 12K 0 12K 0% /sys/fs/cgroup
tmpfs 63G 0 63G 0% /sys/fs/cgroup/cgmanager
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 903M 63G 2% /run
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 63G 9,0M 63G 1% /tmp
none 63G 0 63G 0% /run/shm
df -i
告诉我
Dateisystem Inodes IBenutzt IFrei IUse% Eingehängt auf
/dev/loop1 26214400 1947464 24266936 8% /
none 16488053 22 16488031 1% /dev
cgroup 16488053 16 16488037 1% /sys/fs/cgroup
tmpfs 16488053 17 16488036 1% /sys/fs/cgroup/cgmanager
tmpfs 16488053 1 16488052 1% /dev/shm
tmpfs 16488053 269 16487784 1% /run
tmpfs 16488053 1069 16486984 1% /run/lock
tmpfs 16488053 192 16487861 1% /tmp
none 16488053 1 16488052 1% /run/shm
这是输出ipcs
------ Message Queues --------
key msqid owner perms used-bytes messages
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x4f3f00ec 9928704 root 600 1000 3
0x640109b7 9961473 root 600 1200712 3
0x0004e7b0 9437186 root 666 20564 0
------ Semaphore Arrays --------
key semid owner perms nsems
0x002fa327 0 root 666 2
0x00000000 9535489 www-data 600 1
0x00000000 9568258 www-data 600 1
0x7f9640a9 4096003 ftp_ase 644 3
0x3780350e 4456452 ftp_sur 644 3
知道如何避免这个错误吗?
答案1
您可以看到 apache 正在使用 IPC 信号量,可能是来自 apache 模块。
如果它崩溃了,它将不会清理信号量,至少在重新启动之前该信号量会永久分配给系统。
运行ipcs
后你可能会看到其中有很多属于 apache 的东西。
您可以使用ipcrm
命令来清除它。
答案2
您可能有很多小文件,并且 inode(存储文件元数据的结构)用完了。如果是这种情况,您需要删除这些文件以释放空间。
您可以通过命令检查inode的使用情况 df -i
。
答案3
不确定错误原因,但似乎您没有使用 root 用户重新启动服务。您是否尝试过使用 root 用户重新启动 apache2?结果如何?