Плануйце проксі-сокеты NGINX да павелічэння worker_connections
Праксіраванае злучэнне звычайна займае два сокеты — кліента і вышэйшага сервера; адрознівайце ліміт злучэнняў воркера ад ліміту файлавых дэскрыптараў службы.
Адно доўгае праксіраванае злучэнне звычайна займае два сокеты: кліента і вышэйшага сервера. worker_connections лічыць абодва бакі. Таму множанне яго на worker_processes не дае абяцання ёмістасці для карыстальнікаў проксі.
Калі злучэнні ўзнікаюць збоі, ідзіце за паведамленым лімітам:
| Сведчанне | Налада або стан працэсу для праверкі |
|---|---|
| вычэрпванне worker_connections | Бюджэт злучэнняў воркера, уключаючы сокеты вышэйшага сервера |
| «Занадта шмат адкрытых файлаў» ад аперацыйнай сістэмы | Ліміт файлавых дэскрыптараў, які ўспадкоўвае фактычны працэс службы |
Сокеты праслухоўвання, журналы і іншыя адкрытыя файлы таксама спажываюць дэскрыптары. Паўторнае выкарыстанне злучэнняў і склад трафіку змяняюць суадносіны паміж карыстальнікамі і сокетамі.
worker_rlimit_nofile карэктуе ліміты воркера ў межах правоў асяроддзя. Юніт systemd можа задаць LimitNOFILE; ulimit інтэрактыўнай абалонкі не змяняе працуючую службу.
Падбірайце ліміты пад нагрузку і правярайце, хто іх спажывае. Нечаканыя кліенты або злучэнні, якія пастаянна збіваюцца, могуць вычарпаць раней дастатковы бюджэт. Большая колькасць працэсаў або ліміт памяці не выпраўляе недахоп дэскрыптараў.