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