worker_connections పెంచే ముందు NGINX ప్రాక్సీ సాకెట్లను బడ్జెట్ చేయండి
ప్రాక్సీ కనెక్షన్ సాధారణంగా క్లయింట్ మరియు upstream రెండు సాకెట్లను ఉపయోగిస్తుంది; worker కనెక్షన్ పరిమితిని సేవ యొక్క ఫైల్ డెస్క్రిప్టర్ పరిమితి నుండి వేరు చేయండి.
దీర్ఘకాలం నిలిచే ఒక ప్రాక్సీ కనెక్షన్ సాధారణంగా రెండు సాకెట్లను తీసుకుంటుంది: క్లయింట్ మరియు upstream వి. worker_connections రెండు వైపులను లెక్కిస్తుంది. కాబట్టి దాన్ని worker_processes తో గుణించడం ప్రాక్సీ వినియోగదారులకు సామర్థ్య హామీ ఇవ్వదు.
కనెక్షన్లు విఫలమైనప్పుడు, నివేదించిన పరిమితిని అనుసరించండి:
| సాక్ష్యం | తనిఖీ చేయవలసిన సెట్టింగ్ లేదా ప్రక్రియ స్థితి |
|---|---|
| worker_connections నిండిపోవడం | upstream సాకెట్లతో సహా worker కనెక్షన్ బడ్జెట్ |
| ఆపరేటింగ్ సిస్టమ్ సందేశం “చాలా ఎక్కువ ఫైళ్లు తెరిచి ఉన్నాయి” | నిజమైన సేవా ప్రక్రియ వారసత్వంగా పొందే ఫైల్ డెస్క్రిప్టర్ పరిమితి |
వినడం సాకెట్లు, లాగ్లు మరియు ఇతర తెరిచిన ఫైళ్లు కూడా డెస్క్రిప్టర్లను ఖర్చు చేస్తాయి. కనెక్షన్ పునర్వినియోగం మరియు ట్రాఫిక్ మిశ్రమం వినియోగదారులు మరియు సాకెట్ల మధ్య సంబంధాన్ని మారుస్తాయి.
worker_rlimit_nofile పర్యావరణ అనుమతులకు లోబడి worker పరిమితులను సర్దుబాటు చేస్తుంది. systemd యూనిట్ LimitNOFILE సెట్ చేయగలదు; ఇంటరాక్టివ్ షెల్లోని ulimit నడుస్తున్న సేవను మార్చదు.
పని భారానికి తగ్గట్టు పరిమితులను నిర్ణయించండి, వాటిని ఎవరు ఖర్చు చేస్తున్నారో తనిఖీ చేయండి. ఊహించని క్లయింట్లు లేదా పదే పదే విఫలమయ్యే upstream కనెక్షన్లు గతంలో సరిపోయిన బడ్జెట్ను ఖాళీ చేయగలవు. పెద్ద ప్రక్రియ సంఖ్య లేదా మెమరీ పరిమితి డెస్క్రిప్టర్ కొరతను సరిచేయదు.