VPN-millistöð hættir að taka við SSH: takmarkanir skráarlýsinga
Göngin umferð heldur áfram að streyma á meðan socat-millistöðin fyrir aftan neitar nýjum lotum. Fylgdu slóðinni og lestu síðan arfleifðu takmörkunina á lifandi PID.
WireGuard handaband klárast enn, peer sýnir enn nýlegan endapunkt, og samt hangir ný SSH-lota gegnum millistöðina fyrir aftan án borða. Þessi samsetning vísar frá göngunum og að ferlinu sem tekur við sokknum. Millistöð eins og socat situr á slóð forritsins með eigin lýsingafjárhagsáætlun, eigin börn og eigin arfleifðar takmarkanir. Gangan hér að neðan byrjar hjá biðlaranum og stöðvast við fyrstu eininguna sem getur ekki opnað annan sokk.
Fylgdu slóðinni áður en þú breytir tölu
Fylgdu einni misheppnaðri beiðni í stað þess að rökræða göngin í heild. Biðlarinn skrifar í göngin, VPN-dæmoninn afkóðar og beinir, og millistöðin tekur við hinum megin. Hvert skref eyðir lýsingum, og sú sem venjulega klárast er sú síðasta.
Byrjaðu á beiðni sem þú getur endurtekið og mældu tímann. Ef TCP handabandið klárast en ekkert forritsborði berst, tók millistöðin sokkinn og stöðvaðist síðan í barni eða á uppstreymisfæti sínum. Ef handabandið sjálft klárast aldrei er orsökin beining, eldveggur eða staða hlustandans, ekki þak lýsinga. Skráðu hvora tveggja mynda þú sást, því þær vísa á ólík ferli.
Teldu líka stökkin sem tvöfalda vinnu. Greinandi hlustandi afhendir hvern viðtekinn sokk barni sem heldur eigin afriti, svo raunverulega heildin er eiginleiki alls trésins, ekki foreldrisins eins.
Lestu takmörkunina sem millistöðin erfði
Eina takmörkunin sem skiptir máli tilheyrir keyrandi ferlinu, og hana setti það sem ræsti ferlið. Að slá ulimit -n í skel lýsir skelinni. Spurðu þjónustustjórann hvað hann beitti, og staðfestu síðan á PID.
systemctl show -p MainPID -p LimitNOFILE vpn-relay.service
cat /proc/$(systemctl show -p MainPID --value vpn-relay.service)/limits
Skráin limits prentar mjúka og harða þakið eins og ferlið sér þau. Lágt mjúkt gildi undir ríkulegu hörðu gildi þýðir að dæmoninum er heimilt að hækka eigið þak, og sumir gera það við ræsingu; jöfn lág gildi þýða að unit-skráin er uppsprettan.
Drop-in skrár hlaðast í stafrófsröð og síðari skrár vinna, svo systemctl cat vpn-relay.service er hið opinbera yfirlit yfir það sem gildir. Að breyta skrá sem stjórinn les aldrei er algengasta ástæðan fyrir því að hækkuð tala hefur engin áhrif.
Aðskildu stöðuga samtímis frá varðveittu ástandi
Tvö ferli geta náð sama þaki af ótengdum ástæðum, og úrræðin eru ólík. Eftirspurn sem fylgir gagnlegum samtímalotum er afkastaspurning. Vöxtur sem heldur áfram eftir að vinnunni lýkur er leki eða mengi lota sem enginn lokaði.
Mældu í hvíld, á venjulegu hámarki þínu og aftur nokkrum mínútum eftir að álagið stöðvast. Að telja opnar færslur með ls /proc/PID/fd | wc -l á móti mjúku takmörkuninni segir þér bilið, og tala einni eða tveimur undir þakinu er hörð stöðvun frekar en hæg slóð.
Þegar talan neitar að lækka skaltu líta á sokkstöður frekar en heildartölur. Lýsingar sem sitja í CLOSE_WAIT þýða að peer lokaði og þín hlið gerði það aldrei, sem er galli í lífsferli forritsins sem stærri takmörkun frestar aðeins. Takmarkaðu líka barnamódelið: greinandi millistöð án þaks á samtímabörn eyðir lýsingum, ferlaskúffum og minni saman.
Athugaðu nýja gildið á lifandi ferlinu
Eftir að hafa breytt unit skaltu endurhlaða stjóranum og endurræsa þjónustuna, því endurhleðsla ein og sér kemur aldrei í stað takmarkana sem keyrandi ferli hefur þegar erft. Staðfestu á ferlinu sem þjónar umferðinni í raun.
systemctl daemon-reload
systemctl restart vpn-relay.service
awk '/Max open files/ {print}' /proc/$(systemctl show -p MainPID --value vpn-relay.service)/limits
ss -tnp state established '( sport = :2222 )' | wc -l
Línan awk skilar nýja parinu; ef hún sýnir enn það gamla er drop-inið sem þú breyttir ekki það sem hlaðist. Talan ss er álagsathugunin þín, svo opnaðu þann fjölda lota sem þú býst við og fylgist með henni klifra. Tala sem heldur áfram að hækka eftir að þessum lotum er lokað þýðir að takmörkunin var aldrei allt vandamálið.
Ein fyrirvari fylgir hverri stórri hækkun. Forrit sem spyrja með select() geta ekki fylgst með lýsingum yfir FD_SETSIZE, sem er 1024 í dæmigerðum byggingum, svo þak sem hækkað er þar yfir getur valdið bilunum sem virðast ótengdar. Framkvæmdarviðmið systemd ber sömu viðvörun fyrir þjónusturnar sem það ræsir.
Haltu endurræsingunni fjarri framboði gangnanna
Endurræsing millistöðvarinnar sleppir virkum lotum hennar, og það er aðskilinn atburður frá því að VPN dettur niður. Raðaðu breytingunni þannig að göngin haldist uppi meðan millistöðin hringrásar, og varaðu hvern þann sem langlíf lota hans fer yfir.
Afturvirkning er fyrri unit-skráin plús enn ein endurræsing, og sú skrá helst á sínum stað þar til nýja gildið hefur lifað af vinnudag. Lokaðu síðan hringnum með beiðninni sem mistókst upphaflega: ein ný SSH-lota gegnum millistöðina, ein flutningur nógu langur til að skipta máli, og lýsingatala sem snýr aftur á hvíldarstig sitt.