Рейтинг:0

Прокси-сервер www-out достиг предела FD процесса (maxsock=4168). Пожалуйста, проверьте «ulimit-n» и перезапустите

флаг ca

Я скомпилировал haproxy, чтобы применить специальные фильтры LUA, и теперь haproxy продолжает работать до максимального предела открытия файла. Он работает счастливо, а затем внезапно в журналах появляется следующее сообщение:

Прокси-сервер www-out достиг предела FD процесса (maxsock=4026). Пожалуйста, проверьте ulimit-n и перезапустите.

Я попытался увеличить это ограничение, создав файл ограничений службы для haproxy.

кошка /etc/systemd/system/haproxy.service.d/limits.conf 
[Оказание услуг]
LimitNOFILE=600000

При запуске haproxy загружается файл лимитов.

haproxy.service — балансировщик нагрузки HAProxy
   Загружено: загружено (/lib/systemd/system/haproxy.service; включено; предустановка поставщика: включена)
  Вставка: /etc/systemd/system/haproxy.service.d
           ââlimits.conf
   Активно: активно (работает) с 11 августа 2021 г., 15:07:08 CEST; 8 сек. назад
     Документы: мужчина: haproxy(1)
           файл:/usr/доля/doc/haproxy/configuration.txt.gz
  Процесс: 25865 ExecStartPre=/usr/local/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS (code=exited, status=0/SUCCESS)
 Основной PID: 25867 (прокси)

Однако это, похоже, меняет только жесткое ограничение, а не мягкое ограничение haproxy, глядя на процесс.

корень 25867 0,1 0,0 141136 18264 ? Ss 15:07 0:00 /usr/local/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
haproxy 25869 0,1 0,0 1173536 12860 ? Sl 15:07 0:00 \_ /usr/local/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
test@test ~> cat /proc/25867/limits | грэп "открыть"
Максимальное количество открытых файлов 4168 600000 файлов  

Наконец-то немного информации о haproxy

Варианты сборки:
  ЦЕЛЬ = linux-glibc
  ЦП = общий
  СС = СС
  CFLAGS = -O2 -g -Wall -Wextra -Wdeclaration-after-statement -fwrapv -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered -Wno-missing-field-initializers -Wtype -limits -Wshift-отрицательное-значение -Wshift-overflow=2 -Wduplicated-cond -Wnull-разыменование
  ОПЦИИ = USE_PCRE=1 USE_OPENSSL=1 USE_LUA=1 USE_SYSTEMD=1
  ОТЛАДКА = 

Список функций: +EPOLL -KQUEUE +NETFILTER +PCRE -PCRE_JIT -PCRE2 -PCRE2_JIT +POLL +THREAD +BACKTRACE -STATIC_PCRE -STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT +CRYPT_H +GETADDRINFO +OPENSSL +LUA +ACCEPT4 -CLOSEFROM -ZLIB +ZLIBROM SLZ +CPU_AFFINITY +TFO +NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL +SYSTEMD -OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS -OT -QUIC -PROMEX -MEMORY_PROFILING

Настройки по умолчанию :
  bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Построен с поддержкой многопоточности (MAX_THREADS=64, по умолчанию=36).
Построено с версией OpenSSL: OpenSSL 1.1.1 11 сентября 2018 г.
Работает на версии OpenSSL: OpenSSL 1.1.1 11 сентября 2018 г.
Библиотека OpenSSL поддерживает расширения TLS: да
Библиотека OpenSSL поддерживает SNI: да
Библиотека OpenSSL поддерживает: TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
Построен с версией Lua: Lua 5.4.3
Построен с поддержкой сетевого пространства имен.
Построен с помощью libslz для сжатия без сохранения состояния.
Поддерживаемые алгоритмы сжатия: identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Построен с поддержкой прозрачного прокси с использованием: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
Построено с версией PCRE: 8.39 2016-06-14
Работает на версии PCRE: 8.39 2016-06-14
Библиотека PCRE поддерживает JIT: нет (USE_PCRE_JIT не задано)
Поддержка зашифрованного пароля через crypt(3): да
Построен с помощью компилятора gcc версии 7.5.0.
Рейтинг:0
флаг ru

Я обычно обрабатываю такие ограничения в /etc/security/limits/limits.d, где можно настроить как жесткие, так и мягкие ограничения для каждого пользователя.(Подробности конфигурации см. в комментариях внутри /etc/security/limits/limits.conf). Я понятия не имею, как это взаимодействует с директивами, установленными в systemd.

флаг ca
Спасибо, я попробую. Нужно ли перезагружать что-либо после изменения файла?
Alien Life Form avatar
флаг ru
Кажется, я помню, что перезапуска затронутых процессов достаточно. Но, я могу ошибаться.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.