Повлияет ли ограничение количества открытых файлов в Centos на HTTP-соединения? Применяется ли ограничение к одному сеансу или ко всем сеансам?
Когда я делаю ulimit -n, я получил 256, я предполагаю, что это означает, что я могу открыть 256 файлов одновременно. Означает ли это, что я могу открыть 256 файлов за один сеанс? или все сеансы?
Например, я вошел на свой сервер с именем пользователя "abc" (через putty/ssh) и открыл 200 файлов, при этом сеанс все еще работает, я снова вошел на тот же сервер с тем же именем пользователя "abc" (через putty/ssh) Я могу открыть только еще 56 файлов? или я могу открыть еще 256 файлов?
Наконец, этот лимит также ограничивает количество http-соединений? например, в приведенном выше примере, я открыл 200 файлов, а затем я использую "wget" или "curl", чтобы установить http-соединения.
Спасибо
2 ответа
ulimit
является встроенным в bash, поэтому он применяется только к оболочке, и особенно к любым процессам, созданным текущей оболочкой. Следовательно, если вы измените его по какой-либо причине, вам придется делать это настойчиво.
Вы можете оформить заказ /etc/security/limits.conf
файл для установки лимитов сеансов для каждого пользователя. (который представляется предпочтительным методом CentOS)
Вы можете увидеть открытые файлы, используя lsof -P | grep $somepid
команда
Система Linux ограничивает количество дескрипторов открытых файлов для каждого процесса.
256 кажется достаточным для большинства веб-сайтов, если вы используете Apache с MPF.
Для увеличения лимита необходимо добавить строку в /etc/security/limits.conf
разрешить процессам какого-либо пользователя или группы увеличить значение по умолчанию. После этого PAM установит максимальное значение в момент входа в систему. Но для Apache этого недостаточно, поскольку он не "входит".
Вам также нужно будет увеличить это значение перед запуском Apache. В CentOS вы можете отредактировать ваш скрипт /etc/init.d/apache2 и поместить ulimit -n XXXXXX
в начало функции start().
Вы можете проверить лимит для запуска процесса в файле /proc/<PID>/limits
, список открытых файловых дескрипторов находится в /proc/<PID>/fd/