服务 apache2 重启导致“错误:设备上没有剩余空间”

服务 apache2 重启导致“错误:设备上没有剩余空间”

如果我做

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?结果如何?

相关内容