У мене начебто поширена помилка "занадто багато дескрипторів файлів" на nginx. Після довгого пошуку, рішення очевидно збільшити кількість дескрипторів файлів, доступних nginx. Але там недостатньо інформації, щоб мені було комфортно робити це змістовно і безпечно. Ось основні моменти, які висвітлює більшість потоків форуму / електронної пошти:
- ОС має власний загальний ліміт дескриптора файлів (у моїй системі,
cat /proc/sys/fs/file-max
виводить "100678") - кожен користувач також може мати власний ліміт (але в моїй системі працює,
ulimit
як будь-який користувач виводить "необмежено", див. оновлення знизу з більш детальною інформацією ) - кілька людей сказали щось, що відповідає цій людині : "Директива delav_rlimit_nofile не вказує" скільки ", це обмеження операційної системи. Директива worker_rlimit_nofile просто дозволяє швидким і брудним способом збільшити цю межу, якщо її недостатньо. " Тож я гадаю, що сенс полягає в тому, що «краще» встановити ліміт для користувача nginx OS, а не в конфігурації?
Я можу просто закинути значення delav_rlimit_nofile, що перевищує кількість підключень на одного працівника, і називати це за день, але я відчуваю, що не знаю, що тут відбувається.
- чому ліміт на одного працівника буде меншим, ніж межа ОС?
- Як дізнатися, яка зараз моя межа?
оновлення : як для кореня, так і для звичайного користувача, скасуйте висновки "необмежено", АЛЕ ulimit -Hn
та ulimit -Sn
обидва виведення 1024