Squid-ի ֆայլային դեսկրիպտորների իրական սահմանի որոշումը
Կարդացեք գործող պրոքսիի պրոցեսի սահմանները՝ նախքան PAM կարգավորումները փոխելը կամ հզորության բաղադրատոմսից ֆիքսված nofile արժեքը պատճենելը։
Ստուգեք գործող դեմոնը, նախքան մուտքի shell-ի ulimit -n-ին վստահելը։ squid.service օգտագործող տեղադրման համար սկսեք այսպես՝
systemctl show squid.service -p MainPID -p LimitNOFILE
systemctl cat squid.service
Կարդացեք /proc/PID/limits-ը պրոցեսի իրական նույնացուցիչով։ Բազմապրոցես տեղադրման դեպքում ստուգեք նաև համապատասխան աշխատողը։ Կոնֆիգուրացիայում պահված արժեքը ապացույց չէ, որ այս պրոցեսը ժառանգել է այն։
| Կառավարում | Շրջանակ |
|---|---|
Shell ulimit և PAM limits.conf | Shell-ի ժառանգները կամ այն սեսիաները, որոնք իրականում օգտագործում են PAM կարգավորումը |
systemd LimitNOFILE= | Այդ ծառայության ռեսուրսային քաղաքականության ներքո գործարկված պրոցեսները |
Squid max_filedescriptors, որտեղ աջակցվում է | Հավելվածի սահմանը օպերացիոն համակարգի սահմանափակումների ներսում |
Համակարգային ծառայությունը չի ընդունում PAM փոփոխությունները միայն այն պատճառով, որ ադմինիստրատորը փոխել է ֆայլը։ Երբ systemd սահմանը փոխելը տեղին է, օգտագործեք ծառայությանը հատուկ drop-in։ Squid-ը փաստագրում է, որ max_filedescriptors-ը փոխելու համար պահանջվում է վերագործարկում. չսահմանված թողնելու դեպքում ժառանգվում է ՕՀ-ի փափուկ սահմանը։
Չափորոշեք սահմանը դեսկրիպտորների, ոչ թե օգտվողների համար։ Հաճախորդները կարող են պահել մի քանի սոքեթ, ինչպես նաև արտագնա միացումները, մատյանները և օժանդակ խողովակները նույնպես սպառում են դեսկրիպտորներ։ Սահմանի բարձրացումը թույլ է տալիս ավելի մեծ սպառում՝ առանց յուրաքանչյուր հնարավոր դեսկրիպտորի համար անմիջապես ֆիքսված RAM պահուստավորելու։ Ո՛չ հին՝ մեկ սոքեթի հաշվով հիշողության գնահատականը, ո՛չ 65,535-ը համընդհանուր հզորության պահանջ կամ Linux-ի առաստաղ չեն։
Ծառայության փոփոխությունից հետո համեմատեք նոր պրոցեսի սահմանները նախատեսված արժեքների հետ։ Եթե խափանումները տեղի են ունենում դրանցից շատ ցածր, ուսումնասիրեք իրականում սպառվող ռեսուրսը։