Назад | Перейти на главную страницу

Повлияет ли ограничение на количество открытых файлов в Centos на HTTP-соединения? Применяется ли ограничение к одному сеансу или ко всем сеансам?

Когда я делаю ulimit -n, я получаю 256, я полагаю, это означает, что я могу одновременно открыть 256 файлов. Означает ли это, что я могу открыть 256 файлов за один сеанс? или все сеансы?

Например, я зашел на свой сервер с именем пользователя «abc» (через putty / ssh) и открыл 200 файлов, при этом сеанс все еще запущен, я снова зашел на тот же сервер с тем же именем пользователя «abc» (через putty / ssh ), Я могу открыть только 56 файлов? или я могу открыть еще 256 файлов?

Наконец, ограничивает ли это ограничение количество HTTP-соединений? например В приведенном выше примере я открыл 200 файлов, а затем использую «wget» или «curl» для установления HTTP-соединений.

Спасибо

ulimit является встроенной функцией bash, поэтому она применяется только к оболочке, и особенно к любым процессам, созданным текущей оболочкой. Следовательно, если вы измените его по какой-либо причине, вам придется делать это постоянно.

Возможно, вы захотите проверить /etc/security/limits.conf файл для установки ограничений сеанса для каждого пользователя. (который, по-видимому, является предпочтительным методом CentOS)

вы можете видеть открытые файлы, используя lsof -P | grep $somepid команда

Система Linux ограничивает количество дескрипторов открытых файлов для каждого процесса.

256 кажется достаточно для большинства веб-сайтов, если вы используете Apache с предварительным форкованием MPM.

Чтобы увеличить лимит, вам нужно добавить строку в /etc/security/limits.conf чтобы позволить процессам какого-либо пользователя или группы увеличивать значение по умолчанию. После этого PAM установит максимальное значение в момент входа в систему. Но для Apache этого недостаточно, поскольку он не «входит в систему».

Вам также нужно будет увеличить эти значения перед запуском Apache. В CentOS вы можете отредактировать свой /etc/init.d/apache2 скрипт и поместить ulimit -n XXXXXX в начало функции start ().

Вы можете проверить лимит для запущенного процесса в файле /proc/<PID>/limits, список дескрипторов открытых файлов находится в /proc/<PID>/fd/