लॉगिन शेलच्या ulimit -n वर विश्वास ठेवण्यापूर्वी चालू डेमन तपासा. squid.service वापरणाऱ्या इन्स्टॉलेशनसाठी यापासून सुरुवात करा:

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

खऱ्या प्रक्रिया ID ने /proc/PID/limits वाचा. बहु-प्रक्रिया तैनातीत संबंधित वर्करही तपासा. कॉन्फिगरेशनमध्ये साठवलेले मूल्य या प्रक्रियेने ते वारशाने मिळवले याचा पुरावा नाही.

नियंत्रणव्याप्ती
शेल ulimit आणि PAM limits.confशेलचे वंशज किंवा PAM सेटिंग प्रत्यक्षात वापरणारी सत्रे
systemd LimitNOFILE=त्या सेवेच्या संसाधन धोरणाखाली सुरू झालेल्या प्रक्रिया
Squid max_filedescriptors, जिथे समर्थितऑपरेटिंग सिस्टमच्या मर्यादांमधील अनुप्रयोग मर्यादा

प्रशासकाने फाइल बदलली एवढ्याच कारणाने सिस्टम सेवा PAM बदल स्वीकारत नाही. systemd मर्यादा बदलणे योग्य असेल तेव्हा सेवा-विशिष्ट drop-in वापरा. max_filedescriptors बदलण्यासाठी पुन्हा सुरू करणे आवश्यक आहे असे Squid नोंदवते; सेट न करता सोडल्यास OS ची मऊ मर्यादा वारशाने मिळते.

मर्यादा वापरकर्त्यांसाठी नाही, डिस्क्रिप्टरसाठी मोजा. ग्राहक अनेक सॉकेट ठेवू शकतात, आणि बाहेर जाणारे कनेक्शन, लॉग व सहाय्यक पाइपही डिस्क्रिप्टर वापरतात. मर्यादा वाढवल्यास प्रत्येक संभाव्य डिस्क्रिप्टरसाठी त्वरित ठराविक RAM राखून न ठेवता अधिक वापर शक्य होतो. जुना प्रति-सॉकेट मेमरी अंदाज किंवा 65,535 यापैकी कोणतेही सार्वत्रिक क्षमता-आवश्यकता किंवा Linux ची वरची मर्यादा नाही.

सेवा बदलल्यानंतर नव्या प्रक्रियेच्या मर्यादा इच्छित मूल्यांशी तुलना करा. त्यांच्याखाली खूप खाली अपयश येत असल्यास प्रत्यक्षात संपत असलेल्या संसाधनाची चौकशी करा.

संबंधित लेख