Ìkùnà láti bẹ̀rẹ̀ OpenVPN sábà máa ń dé gẹ́gẹ́ bí ẹ̀dùn ọkàn nípa àwọn ohun èlò pẹ̀lú àbá onínú rere láti gbé ààlà kan ga, àbá náà sì ń ṣiṣẹ́ ní nǹkan bí ìdajì àwọn ìṣẹ̀lẹ̀. Lẹ́yìn àwọn ìkùnà wọ̀nyí ni àwọn olùka méjì tí kò ní ìsopọ̀ wà. Ọ̀kan ni ààlà kernel lórí iye iṣẹ́ tí ID olùmúlò gidi ní, a sì ń jogún rẹ̀ nígbà tí a bá ń ṣiṣẹ́ ìlànà náà. Èkejì ni ìsúnnáowó cgroup tí olùdarí iṣẹ́ ń lò fún ẹ̀ka kan àti gbogbo ohun tí ó ń pín jáde. Kíkà iye gidi ẹ̀kọ̀ọ̀kan, fún ẹ̀ka tí ń ṣiṣẹ́ gan-an, kò ní ìnáwó tó ìrònú àfojúdi.

Olùka méjì, ìbéèrè méjì

LimitNPROC ni RLIMIT_NPROC lábẹ́ orúkọ systemd, ẹ̀ka ìṣirò rẹ̀ sì ni ID olùmúlò gidi. Gbogbo ìlànà tí olùmúlò yẹn ní ni a ń kà sí àpapọ̀ kan náà, pẹ̀lú iṣẹ́ tí àwọn ẹ̀ka mìíràn, ìpàdé ìwọlé tàbí iṣẹ́ olùṣètò bẹ̀rẹ̀. Nítorí náà ààlà yìí kì í ṣe òkè fún iṣẹ́ kọ̀ọ̀kan pàápàá jùlọ nígbà tí a bá gbé e sínú ẹ̀ka iṣẹ́, iṣẹ́ tí ó ń pín olùrànlọ́wọ́ jáde fún olùbánisọ̀rọ̀ kọ̀ọ̀kan sì ń bára wọn jà pẹ̀lú gbogbo ohun mìíràn tí ń ṣiṣẹ́ lábẹ́ àkọsílẹ̀ yẹn. Iṣẹ́ cron tí ó dí pẹ̀lú olùmúlò kan náà lè ti ẹ̀ka VPN kọjá ìlà kan tí òun fúnrarẹ̀ kò tíì kọjá rí.

TasksMax ní olùní mìíràn: olùṣàkóso pids lórí cgroup ẹ̀ka náà, tí ó ń ka iṣẹ́ dípò àwọn ìlànà. Àwọn okùn jẹ́ iṣẹ́, nítorí náà ẹ̀rọ abẹ́lẹ̀ tí ó dàbí okùn kan ṣùgbọ́n tí ó ní àkójọpọ̀ òṣìṣẹ́ lè lo ìsúnnáowó tí ó dàbí ẹni pé ó tóbi ju iye ìlànà rẹ̀ lọ ní ìwò àkọ́kọ́. EffectiveTasksMax ń ròyìn ohun tí ìpele cgroup gbà gan-an lẹ́yìn tí àwọn ege òbí ti sọ tiwọn.

Ìdí tí ìyàtọ̀ root fi ń yí ìdáhùn padà

Kernel kò fi RLIMIT_NPROC sí ìlànà tí ó gbé CAP_SYS_RESOURCE tàbí CAP_SYS_ADMIN, ìdí nìyẹn tí ẹ̀ka tí ń ṣiṣẹ́ gẹ́gẹ́ bí root láìfi àwọn ẹ̀tọ́ sílẹ̀ fi jẹ́ aláìlẹ́gbẹ́ ní ti gidi pẹ̀lú ètò yẹn. Ìyàtọ̀ kan ṣoṣo yìí ni ó ń ṣàlàyé àwọn ìmọ̀ràn tí ó tako ara wọn tí àwọn ènìyàn ń pààrọ̀: gbígbé LimitNPROC ga ń tún ìfilélẹ̀ tí ó fi ẹ̀tọ́ sílẹ̀ ṣe, kò sì ṣe nkankan fún èyí tí ó wà pẹ̀lú ẹ̀tọ́. Ṣàyẹ̀wò User= àti bóyá ẹ̀rọ abẹ́lẹ̀ ń yí ìdánimọ̀ padà lẹ́yìn ìbẹ̀rẹ̀ kí o tó fi ìyìn tàbí ẹ̀bi fún ètò yẹn. Ẹ̀ka aláṣẹ tí ó bá yí padà sí àkọsílẹ̀ aláìlẹ́tọ́ lẹ́yìn náà yóò padà wà lábẹ́ ààlà ní àkókò ìyípadà náà, èyí sì ń jẹ́ kí ìlà àkókò ìkùnà náà tó yẹ kí a kà.

Ìpele ìkùnà náà ń dínà sí i. Kíkọ̀ nígbà ìmúrasílẹ̀ ìṣiṣẹ́, àṣìṣe pípín tí ẹ̀rọ abẹ́lẹ̀ fúnra rẹ̀ ròyìn àti ṣíṣe iṣẹ́ tí a kọ̀ nínú cgroup ń mú àwọn ìlà journal ọ̀tọ̀ọ̀tọ̀ jáde, ọ̀kan nínú wọn nìkan ni a sì ń dáhùn fún pẹ̀lú ìsúnnáowó tí ó tóbi jù.

Ka àwọn iye gidi, kì í ṣe ti shell

ulimit -u shell alábàáṣepọ̀ ń ṣàpèjúwe shell yẹn. Kò ṣàpèjúwe ohun tí olùdarí iṣẹ́ fi fún ẹ̀rọ abẹ́lẹ̀, kò sì sọ nkankan nípa ìṣirò cgroup. Béèrè lọ́wọ́ ẹ̀ka náà dípò, ní lílo orúkọ àpẹẹrẹ tí ó wà lórí olùgbàlejò kì í ṣe àpẹẹrẹ láti inú ìtọ́sọ́nà.

systemctl show [email protected] -p User -p LimitNPROC -p TasksCurrent -p TasksMax -p EffectiveTasksMax
cat /proc/$(systemctl show -p MainPID --value [email protected])/limits | grep -i processes

Nínú àpótí ìdìí, ìdáhùn nílò kíkà méjì mìíràn, nítorí iye inú ti infinity ń ṣàpèjúwe ojú àlejò nìkan. Béèrè lọ́wọ́ olùní olùgbàlejò fún òkè pids ti àpótí ìdìí fúnra rẹ̀, kí o sì jẹ́rìí bóyá olùdarí iṣẹ́ inú lè fi olùṣàkóso yẹn lélẹ̀ rárá. Ẹ̀ka tí a kó sínú ẹ̀ka mìíràn kò lè dá ìsúnnáowó tí cgroup òbí rẹ̀ kò fún rẹ̀ rí dúró.

Wọn ìwọ̀n àtúnṣe náà kí o sì fi í hàn lábẹ́ ẹrù

Yan nọ́mbà láti inú ẹrù iṣẹ́ kì í ṣe láti inú ọ̀rọ̀ àṣìṣe. Ka iye àwọn ìlànà tí ẹ̀rọ abẹ́lẹ̀ ń bẹ̀rẹ̀ fún olùbánisọ̀rọ̀ kọ̀ọ̀kan tí ó so mọ́ra tàbí fún ìpè olùrànlọ́wọ́ kọ̀ọ̀kan, pọ̀n pẹ̀lú ìṣọ̀kan tí a retí pé ìfilélẹ̀ yóò gbé, fi àyè kún fún àwọn ìpàdé ìṣàkóso, kí o sì fi nọ́mbà yẹn wé àwọn iye gidi méjì náà. Àtúnkọ drop-in àdúgbò ń jẹ́ kí ìyípadà náà wà lábẹ́ àyẹ̀wò, ó sì ń yege àwọn ìgbésókè àpótí, nígbà tí ṣíṣàtúnṣe fáìlì ẹ̀ka tí a fi ránṣẹ́ ń fi ìyípadà pamọ́ títí ìmúdójúìwọ̀n tó kàn yóò fi rọ́pò rẹ̀. Kọ ìṣirò náà sẹ́gbẹ̀ẹ́ àtúnkọ náà, nítorí ẹni tí yóò gbé e ga tàbí sọ̀ ọ́ kalẹ̀ lẹ́yìn náà nílò àwọn àbájáde ìrònú, kì í ṣe nọ́mbà ìparí.

A ń lo àwọn ìyípadà ìsúnnáowó nígbà ìṣiṣẹ́, nítorí náà kíkó padà nìkan kò yí ìwọ̀n àwọn ìlànà tí ń ṣiṣẹ́ lọ́wọ́lọ́wọ́ padà. Tún ẹ̀ka náà bẹ̀rẹ̀ nípasẹ̀ ìyípo ìgbésí ayé deede rẹ̀, gba ìdádúró ìpàdé náà, kí o sì ka àwọn olùka náà lẹ́ẹ̀kan sí i lórí àpẹẹrẹ tuntun.

sudo systemctl daemon-reload
sudo systemctl restart [email protected]
systemctl show [email protected] -p TasksCurrent -p EffectiveTasksMax
sudo journalctl -u [email protected] -b --no-pager | tail -n 20

Ohun tí ó fi àtúnṣe náà hàn ni ẹ̀ka tí a tún bẹ̀rẹ̀ tí iye iṣẹ́ rẹ̀ wà lábẹ́ òkè méjèèjì nígbà tí ó ń gbé ẹrù tí a pinnu, pẹ̀lú journal tí kò tún ròyìn ìparí iṣẹ́ tàbí pípín ní ìpele kan náà. Tọ́jú àwọn nọ́mbà ṣáájú àti lẹ́yìn pẹ̀lú ìyípadà náà, kí ìwádìí tó kàn lè bẹ̀rẹ̀ láti ìdíwọ̀n kì í ṣe láti inú ìmọ̀ràn kan náà. Bí nọ́mbà náà bá ṣì dé òkè, ìṣirò náà ni ó ṣe àṣìṣe kì í ṣe ààlà tí ó kéré jù lójijì, àti pé ó tọ́ kí a mọ ìyàtọ̀ yẹn kí a tó tún bẹ̀rẹ̀ lẹ́ẹ̀kan sí i.

Àwọn àpilẹ̀kọ tó jọra