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

Как интерпретировать количество открытых и максимальных файловых дескрипторов для nginx?

Я хочу получить дескрипторы открытых в данный момент файлов и верхний предел дескрипторов открытых файлов на экземпляре AWS Linux. Причина в том, чтобы определить, нужно ли увеличивать лимиты для nginx, чтобы было доступно достаточно файловых дескрипторов.

Я получаю следующие результаты:

$ulimit -a
open files                      (-n) 1024

$lsof | wc -l
397

$sudo lsof | wc -l
1870

$sysctl fs.file-nr
fs.file-nr = 1248   0   197688

Из этот ответ Я читал это sysctl жесткое ограничение выделения памяти для файловых дескрипторов в ядре, в то время как ulimit Кажется, это ограничение, которое может применяться к определенным доменам и относится к каждому процессу только с областью сеанса.

Правильно ли я интерпретирую приведенные выше значения:

  1. ulimit показывает, что nginx может открывать 1024 файла за процесс. nginx запускает 2 рабочих процесса на этой машине, поэтому у него доступно 2048 файловых дескрипторов.

  2. lsof показывает, что процессы вошедшего в систему пользователя (который запускает nginx) открыли 397 файлов.

  3. sudo lsof показывает, что на тот момент в системе было открыто 1870 файлов.

  4. sysctl показывает, что максимальное количество файловых дескрипторов в системе - 197688. Это означает, что для всех пользователей и всех процессов, запущенных на этом компьютере, у них не может быть открыто более 197688 файлов.

  5. Разница между текущими открытыми файлами 1248 и 1870 заключается в том, что они подсчитываются по-разному. file-nr игнорирует некоторые каталоги, которые lsof считает файлами. https://unix.stackexchange.com/q/176967/370277

Адаптация лимитов для nginx: