worker_connections بڑھانے سے پہلے NGINX پراکسی ساکٹ کا بجٹ بنائیں
پراکسی کنکشن عام طور پر کلائنٹ اور upstream دونوں ساکٹ استعمال کرتا ہے; ورکر کی کنکشن حد کو سروس کی فائل ڈسکرپٹر حد سے الگ سمجھیں۔
ایک طویل المدتی پراکسی کنکشن عام طور پر دو ساکٹ لیتا ہے: کلائنٹ کا اور upstream کا۔ worker_connections دونوں طرف گنتا ہے۔ اس لیے اسے worker_processes سے ضرب دینا پراکسی صارفین کو صلاحیت کا کوئی وعدہ نہیں دیتا۔
جب کنکشن ناکام ہوں تو بتائی گئی حد کی پیروی کریں:
| ثبوت | جانچنے والی سیٹنگ یا پروسیس کی حالت |
|---|---|
| worker_connections کا ختم ہونا | ورکر کا کنکشن بجٹ، بشمول upstream ساکٹ |
| آپریٹنگ سسٹم کا پیغام «بہت زیادہ فائلیں کھلی ہیں» | فائل ڈسکرپٹر حد جو اصل سروس پروسیس ورثے میں پاتا ہے |
سننے والے ساکٹ، لاگ اور دیگر کھلی فائلیں بھی ڈسکرپٹر خرچ کرتی ہیں۔ کنکشن کا دوبارہ استعمال اور ٹریفک کا امتزاج صارفین اور ساکٹ کے تعلق کو بدلتا ہے۔
worker_rlimit_nofile ماحول کی اجازتوں کے تابع ورکر کی حدیں ایڈجسٹ کرتا ہے۔ systemd یونٹ LimitNOFILE مقرر کر سکتی ہے; انٹرایکٹو شیل کا ulimit چلتی سروس کو تبدیل نہیں کرتا۔
حدیں کام کے بوجھ کے مطابق طے کریں اور دیکھیں کہ انہیں کون خرچ کرتا ہے۔ غیر متوقع کلائنٹ یا بار بار ناکام ہونے والے upstream کنکشن پہلے کافی رہنے والا بجٹ ختم کر سکتے ہیں۔ بڑی پروسیس تعداد یا میموری حد ڈسکرپٹر کی کمی نہیں دور کرتی۔