Squid کی اصل فائل-ڈسکرپٹر حد معلوم کرنا
PAM ترتیبات بدلنے یا کسی صلاحیت کی ترکیب سے مقررہ nofile قدر نقل کرنے سے پہلے چل رہے پراکسی کے عمل کی حدود پڑھیں۔
لاگ اِن شیل کے 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 کا استعمال کریں۔ Squid دستاویز کرتا ہے کہ max_filedescriptors کو بدلنے کے لیے دوبارہ آغاز درکار ہے؛ اگر مقرر نہ کیا جائے تو OS کی نرم حد وراثت میں ملتی ہے۔
حد کو صارفین کے بجائے ڈسکرپٹرز کے لیے ناپیں۔ کلائنٹ متعدد ساکٹ رکھ سکتے ہیں، اور باہر جانے والے روابط، لاگ اور معاون پائپ بھی ڈسکرپٹر استعمال کرتے ہیں۔ حد بڑھانے سے ہر ممکنہ ڈسکرپٹر کے لیے فوراً مقررہ RAM مختص کیے بغیر زیادہ استعمال ممکن ہوتا ہے۔ نہ پرانا فی ساکٹ میموری اندازہ اور نہ 65,535 کوئی عالمگیر صلاحیت کی ضرورت یا Linux کی بالائی حد ہے۔
سروس کی تبدیلی کے بعد نئے عمل کی حدود کا موازنہ مطلوبہ قدروں سے کریں۔ اگر ناکامیاں اُن سے بہت نیچے ہوں تو اصل میں ختم ہو رہے وسیلے کی تحقیق کریں۔