Админская сага
Пальчики летали.
От админского захода
Пассворд подбирали.
Да админ малой не промах:
Что пароль — аршин по сорок.
А в портах-то красота,
Не торчат абы куда!
И в системе чёткий план
Всем сервайсам по правам.
На просторах Эки Кеев
Пальчики устали.
Шифт с пробелом поломали,
Доступ не достали…
Пролез в сетевой журнал
Дал интервью для журнала Веб-Аналитик.ИНФО.
Из студенческого
Откопано в старых бумагах. Лет 10 прошло, наверное.
* * *
Мальчик один в Универ поступил
И на пятёрки учиться решил.
Долго, смеясь, изучали в дурдоме
Болезни историю мальчика в коме.
* * *
Маленький мальчик лекцию слушал,
Делая вид, что чего-то там кушал.
Был аппетит и у лектора тоже:
До выходного мальчик не дожил.
Исправить «too many open files» в nginx
У вас настолько выросла посещаемость сайта, что nginx отписывает ошибки «too many open files» с ужасающей скоростью?
Причина в лимитах. По умолчанию на процесс выдается возможность открыть 1024 файла (по крайней мере в Debian и Ubuntu). Как узнать действующие лимиты? Просто. Выполняем от суперпользователя:
for pid in `pidof nginx`; do echo "$(< /proc/$pid/cmdline)"; egrep 'files|Limit' /proc/$pid/limits; echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"; echo; done
Получаем отчётик:
nginx: worker process Limit Soft Limit Hard Limit Units Max open files 1024 1048576 files Currently open files: 945 nginx: master process /usr/sbin/nginx Limit Soft Limit Hard Limit Units Max open files 1024 1048576 files Currently open files: 24
Ситуация ясна, процесс nginx на грани фола: ещё чуть-чуть и злополучная ошибка «разорвёт» все логи…
Решение проблемы пришлось искать недолго. Во многих блогах и обсуждениях в форумах и списках рассылки предлагается способ с применением утилиты ulimit и редактированием /etc/sysctl.conf и /etc/security/limits.conf.
Пробуем. Не работает. Ищем тщательнее…
Правильный ответ для запускаемого от суперпользователя головного процесса nginx таков: надо отредактировать nginx.conf, добавив в начало директиву (число выбирайте по вкусу):
worker_rlimit_nofile 16384;
После этого пошлите «master process»-у сигнал HUP (пере-конфигурация) и, вуаля:
nginx: worker process Limit Soft Limit Hard Limit Units Max open files 16384 16384 files Currently open files: 1058 nginx: master process /usr/sbin/nginx Limit Soft Limit Hard Limit Units Max open files 1024 1048576 files Currently open files: 24
Ну, а теперь поздравляю, высокая посещаемость при пустых логах ошибок — что может быть более приятно админу?



Что-то заинтересовало?