Ստուգեք գործող դեմոնը, նախքան մուտքի shell-ի ulimit -n-ին վստահելը։ squid.service օգտագործող տեղադրման համար սկսեք այսպես՝

systemctl show squid.service -p MainPID -p LimitNOFILE
systemctl cat squid.service

Կարդացեք /proc/PID/limits-ը պրոցեսի իրական նույնացուցիչով։ Բազմապրոցես տեղադրման դեպքում ստուգեք նաև համապատասխան աշխատողը։ Կոնֆիգուրացիայում պահված արժեքը ապացույց չէ, որ այս պրոցեսը ժառանգել է այն։

ԿառավարումՇրջանակ
Shell ulimit և PAM limits.confShell-ի ժառանգները կամ այն սեսիաները, որոնք իրականում օգտագործում են PAM կարգավորումը
systemd LimitNOFILE=Այդ ծառայության ռեսուրսային քաղաքականության ներքո գործարկված պրոցեսները
Squid max_filedescriptors, որտեղ աջակցվում էՀավելվածի սահմանը օպերացիոն համակարգի սահմանափակումների ներսում

Համակարգային ծառայությունը չի ընդունում PAM փոփոխությունները միայն այն պատճառով, որ ադմինիստրատորը փոխել է ֆայլը։ Երբ systemd սահմանը փոխելը տեղին է, օգտագործեք ծառայությանը հատուկ drop-in։ Squid-ը փաստագրում է, որ max_filedescriptors-ը փոխելու համար պահանջվում է վերագործարկում. չսահմանված թողնելու դեպքում ժառանգվում է ՕՀ-ի փափուկ սահմանը։

Չափորոշեք սահմանը դեսկրիպտորների, ոչ թե օգտվողների համար։ Հաճախորդները կարող են պահել մի քանի սոքեթ, ինչպես նաև արտագնա միացումները, մատյանները և օժանդակ խողովակները նույնպես սպառում են դեսկրիպտորներ։ Սահմանի բարձրացումը թույլ է տալիս ավելի մեծ սպառում՝ առանց յուրաքանչյուր հնարավոր դեսկրիպտորի համար անմիջապես ֆիքսված RAM պահուստավորելու։ Ո՛չ հին՝ մեկ սոքեթի հաշվով հիշողության գնահատականը, ո՛չ 65,535-ը համընդհանուր հզորության պահանջ կամ Linux-ի առաստաղ չեն։

Ծառայության փոփոխությունից հետո համեմատեք նոր պրոցեսի սահմանները նախատեսված արժեքների հետ։ Եթե խափանումները տեղի են ունենում դրանցից շատ ցածր, ուսումնասիրեք իրականում սպառվող ռեսուրսը։

Առնչվող հոդվածներ