The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Ошибка No space left on device (28)"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Apache, http-серверы)
Изначальное сообщение [ Отслеживать ]

"Ошибка No space left on device (28)"  +/
Сообщение от Kverty email on 29-Фев-12, 13:37 
При попытке стартовать сессию в PHP выдается ошибка:

Warning:  session_start() [function.session-start]: open(/home/.../sess_f1ef29de94eb312345675618236c93c4, O_RDWR) failed: No space left on device (28) in /home/...

Вычитал, что это известная проблема с Апачей и семафорами, вот что выдает ipcs:

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x0000014c 0          root      600        384        22

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x0000014c 0          root      600        1
0x00000000 98305      www-data  600        1
0x00000000 65538      www-data  600        1
0x00000000 131075     www-data  600        1

Не знаю, нормально ли это, попробовал очистить семафоры командой:

ipcs |grep nobody | awk '{print $2}' | xargs ipcrm sem

Семафоры удалились, Апача упал. Перезагрузил сервер. Та же ошибка, тот же вывод ipcs.
Поиск в Гугле выдает аналогичные решения с очисткой семафоров, отличающиеся синтаксисом. Но почти везде пишут, что даже просто перезагрузка должна исправить ошибку.
Что можно еще проверить и попробовать сделать?

P.S. Место да диске есть:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/md2             720544880 571690092 112541468  84% /
tmpfs                  4096920         0   4096920   0% /lib/init/rw
udev                     10240       764      9476   8% /dev
tmpfs                  4096920         0   4096920   0% /dev/shm
/dev/md1               2087808     80424   1902164   5% /boot

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/md2             45391872 21858245 23533627   49% /
tmpfs                1024230       7 1024223    1% /lib/init/rw
udev                 1024230    1461 1022769    1% /dev
tmpfs                1024230       1 1024229    1% /dev/shm
/dev/md1              131648      44  131604    1% /boot

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Ошибка No space left on device (28)"  +/
Сообщение от pavlinux (ok) on 29-Фев-12, 14:27 
> При попытке стартовать сессию в PHP выдается ошибка:

1. # sysctl -w vm.overcommit_memory = 2;
2. # ulimit -a
3. Квоты проверь.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Ошибка No space left on device (28)"  +/
Сообщение от Kverty email(ok) on 29-Фев-12, 14:44 
>> При попытке стартовать сессию в PHP выдается ошибка:
> 1. # sysctl -w vm.overcommit_memory = 2;
> 2. # ulimit -a
> 3. Квоты проверь.

1. overcommit_memory=2 сделал, ничего не изменилось. Перезагружать что-то надо для принятия изменений? На чем может отрицательно отразиться значение 2 вместо 0?
2. ulimit (не понимаю, что значат эти значения...)

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 73728
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 73728
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

3. Какие квоты проверить и как?
4. С разрешениями на запись всё должно быть нормально, раньше работало.

Вообще, забыл написать: сервер нормально работал больше года, изменений в конфигурацию не вносилось, правились только скрипты сайта + постоянное добавление контента.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Ошибка No space left on device (28)"  +/
Сообщение от Pahanivo (ok) on 29-Фев-12, 14:30 
может все гораздо тупее - permissions ?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Ошибка No space left on device (28)"  +/
Сообщение от slepnoga (??) on 01-Мрт-12, 01:45 
a теперь df -i  и кушаем ext  кактусы дальше
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Ошибка No space left on device (28)"  +/
Сообщение от Kverty email(ok) on 01-Мрт-12, 21:58 
> a теперь df -i  и кушаем ext  кактусы дальше

Вообще-то, вывод команды df -i приведен в исходном сообщении.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Ошибка No space left on device (28)"  +/
Сообщение от Kverty email(ok) on 01-Мрт-12, 22:03 
Почти два дня пробился в попытках получить список файлов в папке с сессиями или хотя бы посчитать количество файлов в этой папке. Удалить не глядя также никак не получилось, даже порциями по маске. Все перепробованные команды подвисали более, чем на 6 часов и были остановлены. В итоге написал скриптик на PHP и за 2-3 часа получил количество файлов в папке, их оказалось больше 20 млн.! =:0
Поставил на удаление тоже средством php, судя по всему потребуется несколько суток.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Ошибка No space left"  +/
Сообщение от Andrey Mitrofanov on 16-Мрт-12, 09:48 
> количество файлов в папке, их оказалось больше 20 млн.! =:0

А ещё можно было бы, если бы внезапно! кокер-програмер под задачу нашёлся... , положить сессии не в _одну _плоскую директорию, а в дерево.

Hint: Из описания session_start() есть ссылка на session_set_save_handler().
Hint2: Не $где/там/sess_f1ef29de94eb312345675618236c93c4, а скажем $где/там/sess/f1/ef/29/de94eb312345675618236c93c4
Hint3: Под "Такое Дело" можно было бы и fs поискать (или подтюнить?), более благосклонную к куче мелких файлов. Посмотреть на доступность памяти в системе, чтоб "оно" таки в кеше больше лежало. итпитп

Hint4: [Я перечитывать тред не стал, мож оно "так и надо", но] старые сессии обычно чистят ~периодическим скриптом. Имеет также смысл посмотреть, не была ли это DoS атака.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

7. "Ошибка No space left on device (28)"  +/
Сообщение от Kverty email(ok) on 02-Мрт-12, 20:11 
Прошли почти сутки, удалено 7 млн. файлов, осталось недолго. :)
Но, несмотря на то, что много файлов уже удалено, ошибка на сайте осталась - новые сессии не стартуют, так что изначальный вопрос актуален!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Ошибка No space left on device (28)"  +/
Сообщение от Andrey Mitrofanov on 02-Мрт-12, 22:49 
Может, на таком офигительно популярном сайте хранить сессии не на диске? Уже?!
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Ошибка No space left on device (28)"  +/
Сообщение от PavelR (ok) on 15-Мрт-12, 23:07 
> Может, на таком офигительно популярном сайте хранить сессии не на диске? Уже?!

Вот, тож, для популярного сайта используют хранение сессий в СУБД.

Инновации - в действии.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Ошибка No space left on device (28)"  +/
Сообщение от Oleg (??) on 07-Сен-12, 13:00 
В подобной ситуации помогло следующее:
1. Зайти в требуемую папку
2. выполнить комманду: ls -1 | xargs -i -n 100 rm -f {}
(удаляет содержимое пачками по 100 файлов)
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру