Если я сделаю
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
Есть идеи, как избежать этой ошибки?
Вы можете увидеть это там, где apache использует семафоры IPC, вероятно, из модуля apache.
В случае сбоя он не очистит семафор, который остается постоянно назначенным системе, по крайней мере, до тех пор, пока перезагрузка.
Запустите ipcs
, и вы, вероятно, увидите там много вещей, принадлежащих apache.
Вы можете использовать команду ipcrm
, чтобы очистить его.
Вероятно, у вас много маленьких файлов, и они закончились inodes (структуры, в которых хранятся метаданные файла). В этом случае вам необходимо удалить эти файлы, чтобы освободить место.
Вы можете проверить использование inode с помощью команды df -i
.
Не уверен в ошибке, но кажется, не используют пользователя root для перезапуска службы. Вы пробовали перезапустить apache2 с пользователем root? Что в результате?