آرٹیکل ڈائرکٹری
کیا آپ کو کام پر اچانک پتہ چلا ہے کہ Nginx کا CPU استعمال آسمان کو چھو چکا ہے؟ معاملات کو مزید خراب کرنے کے لیے، Nginx کے متعدد ورکر پروسیسز جب بھی میں عمل کو دیکھتا ہوں پاگلوں کی طرح وسائل استعمال کر رہے ہیں۔
اس منظر کو دیکھ کر آپ کا سر گرم ہو جاتا ہے، اور آپ چیخنے میں مدد نہیں کر سکتے: "اوہ میرے خدا، کیا سرور پھٹنے والا ہے، پریشان نہ ہوں، اس کا مطلب یہ نہیں کہ آپ کا سرور ختم ہو جائے گا"۔ لیکن Nginx ہمیں آپ کو ایک جامع اصلاح کرنے کی ضرورت ہے!
ضرورت سے زیادہ Nginx بوجھ کی وجوہات کا تجزیہ

سب سے پہلے، ہمیں یہ معلوم کرنا ہوگا،Nginx اچانک "تھک" کیوں ہو جاتا ہے؟مسئلے کی بہت سی وجوہات ہیں، گھبرائیں نہیں، آئیے ذیل میں مل کر تلاش کرتے ہیں۔
1. غیر معقول ترتیب
Nginx کنفیگریشن فائل میں، سب سے اہم نکتہ یہ ہے۔ worker_processes. یہ پیرامیٹر Nginx کے شروع کردہ عمل کی تعداد کا تعین کرتا ہے۔
- اگر آپ بہت کم کارکن کے عمل کو ترتیب دیتے ہیں، تو CPU کا بوجھ بڑھ جائے گا؛ اگر آپ بہت زیادہ ترتیب دیتے ہیں، تو کافی میموری نہیں ہوگی۔
- آپ کو بیلنس پوائنٹ تلاش کرنا ہوگا، مثال کے طور پر،worker_processes کو CPU کور کی تعداد سے 1 سے 2 گنا پر سیٹ کریں۔ہے.
- اگر آپ کے پاس 4 کور ہیں تو کوشش کریں۔
worker_processes 4یا اسے براہ راست سیٹ کریں۔autoہے.
2. دوروں میں اضافہ
بعض اوقات، Nginx کا بوجھ اچانک اس لیے نہیں بڑھتا کہ آپ نے غلطی کی، بلکہ اس لیے کہ وزٹ کی تعداد بہت زیادہ ہے۔انتہائی ہم آہنگی تک رسائی کی درخواستیں Nginx کارکن کے عمل کو مغلوب کرنے کا سبب بنیں گی۔، ہر عمل اوورلوڈ ہے، اور CPU اور میموری بھی بھری ہوئی ہے۔ اس وقت، آپ کو سرور کے وسائل کو بہتر بنانے کی ضرورت ہو سکتی ہے، جیسے کہ CPU کور کی تعداد میں اضافہ یا میموری کو بڑھانا۔ یقیناً، یہ بھی ایک یاد دہانی ہے: CDN آف لوڈنگ یا لوڈ بیلنسنگ پر غور کرنا نہ بھولیں۔
3. بدنیتی پر مبنی حملوں کا سامنا کرنا پڑا
انٹرنیٹ پر "بہت مقبول" ہونا ہمیشہ اچھی چیز نہیں ہے، نقصان دہ حملے آپ کو کسی بھی وقت نشانہ بنا سکتے ہیں۔ اگر آپ کو معلوم ہوتا ہے کہ سی پی یو کا استعمال غیر معمولی طور پر زیادہ ہے اور درخواست کا آئی پی مشتبہ ہے، تو اس بات کا بہت امکان ہے کہ آپ کی ویب سائٹ DDoS حملے کا شکار ہے۔ اس وقت،آپ کو فوری طور پر فائر وال لگانے یا رسائی کی فریکوئنسی کو محدود کرنے کی ضرورت ہے۔، جیسے Nginx کے ساتھ آنے والے موجودہ محدود ماڈیول کا استعمال کرنا، یا IP بلیک لسٹ ترتیب دینا۔
Nginx عمل کے زیادہ میموری کے استعمال کے مسئلے کو کیسے حل کیا جائے؟
تو سوال یہ ہے کہ Nginx کارکن عمل اتنے وسائل کیوں اٹھاتا ہے؟ ہمیں ترتیب کے ساتھ شروع کرنا ہوگا اور اسے قدم بہ قدم بہتر بنانا ہوگا۔
ترتیب کا طریقہ
Nginx کنفیگریشن فائل کھولیں۔: عام طور پر، Nginx کی مین کنفیگریشن فائل پر واقع ہوتی ہے۔
/etc/nginx/nginx.confہے.سیٹ اپ کریں
worker_processes: کنفیگریشن فائل میں ملاeventsبلاکس، ترتیباتworker_processesقدر اگر نہیںeventsبلاک، آپ کو ایک بنانے کی ضرورت ہے.nginx events { worker_connections 1024; use epoll; # 或者适用于操作系统的其他事件模型 }
1. ورکر_کنیکشن کو صحیح طریقے سے سیٹ کریں۔
nginx worker_connections پیرامیٹر کنکشن کی زیادہ سے زیادہ تعداد کا تعین کرتا ہے جسے ہر کارکن کا عمل سنبھال سکتا ہے۔ اگر یہ بہت چھوٹا ہے، تو یہ ہم آہنگی کی کارکردگی کو متاثر کرے گا؛ اگر یہ بہت بڑا ہے، تو یہ بہت زیادہ وسائل استعمال کر سکتا ہے۔
مناسب قیمت کا حساب کیسے لگائیں؟
فرض کریں کہ آپ کے پاس 4 کور CPU اور 16GB RAM ہے، ایک محفوظ نقطہ آغاز ہے worker_connections 4096ہے.
لیکن اگر آپ کی ویب سائٹ پر بہت زیادہ ٹریفک ہے، تو اس قدر کو 8192 تک بڑھانے پر غور کریں تاکہ یہ یقینی بنایا جا سکے کہ ہر عمل کافی درخواستوں کو سنبھال سکتا ہے۔
events {
worker_connections 8192;
}
اس طرح، Nginx کی پروسیسنگ طاقت بہت بہتر ہو جائے گا.
2. Keepalive_timeout کو ایڈجسٹ کریں۔
درخواستوں کو سنبھالنے کے لیے Nginx کے لیے ایک اور کلیدی پیرامیٹر ہے۔ keepalive_timeoutہے.
یہ ترتیب طے کرتی ہے کہ کلائنٹ کا سرور سے کنکشن کب تک برقرار رکھا جا سکتا ہے۔
اگر بہت لمبا سیٹ کیا جاتا ہے، تو یہ بہت زیادہ کنکشن کے وسائل پر قبضہ کر لے گا۔ہے.
آپ کوشش کر سکتے ہیں۔ keepalive_timeout کنکشن کو برقرار رکھنے اور وسائل جاری کرنے کے لیے 15 سیکنڈ پر سیٹ کریں۔
keepalive_timeout 15;
3. فائل ڈسکرپٹر کی حد کو بہتر بنائیں
پہلے سے طے شدہ طور پر،لینکس سسٹم میں فائل ڈسکرپٹرز کی تعداد کی ایک حد ہوتی ہے جو ہر عمل کے ذریعے کھولی جا سکتی ہے۔
اگر Nginx کو فائلوں کی ایک بڑی تعداد پر کارروائی کرنے کی ضرورت ہے (جیسے جامد وسائل)، تو آپ دیکھ سکتے ہیں کہ Nginx ایک غلطی کی اطلاع دیتے ہوئے، اشارہ کرتے ہوئے "too many open files"۔
آپ گزر سکتے ہیں worker_rlimit_nofile فائل ڈسکرپٹر کی حد میں اضافہ کریں۔مثال کے طور پر 65535 پر سیٹ کریں۔
worker_rlimit_nofile 65535;
4. کیشنگ اور جیزپ کو فعال کریں۔
ویب سائٹ کی کارکردگی کو بہتر بنانے کے لیے کیشنگ اور کمپریشن دو کلیدیں ہیں۔
Nginx کے کیشنگ فنکشن کو فعال کرنے سے، جامد وسائل (جیسے امیجز اور جے ایس فائلز) کو میموری میں کیش کیا جا سکتا ہے۔، اس طرح سرور پر بوجھ کو بہت کم کرتا ہے۔
اس کے علاوہ، gzip کمپریشن فنکشن کو آن کرنے سے منتقل ہونے والے ڈیٹا کی مقدار کم ہو سکتی ہے اور ویب سائٹ کی رفتار بہتر ہو سکتی ہے۔
gzip on;
gzip_types text/plain application/javascript;
5. Nginx وسائل کے استعمال کا تجزیہ کریں۔
آخر میں، اگر آپ نے اوپر کی تمام اصلاح مکمل کر لی ہے لیکن Nginx ابھی بھی بہت زیادہ CPU لیتا ہے، تو آپ کو گہرائی سے تجزیہ کرنے کے لیے کچھ ٹولز استعمال کرنے کی ضرورت پڑ سکتی ہے۔
使用 top یا htop کسی عمل کی اصل وقتی وسائل کی کھپت کو دیکھیں,پاس strace ٹریس سسٹم کالز، یا استعمال کریں۔ nmon کارکردگی کی رپورٹیں بنائیں۔ صرف Nginx کے اصل آپریشن کا جامع تجزیہ کرکے ہی ہم زیادہ درست ٹیوننگ انجام دے سکتے ہیں۔
总结
جب Nginx کے CPU کے استعمال میں اضافہ ہوتا ہے تو گھبرائیں نہیں۔ یہ صرف غلط ترتیب یا ضرورت سے زیادہ ٹریفک کی وجہ سے ہوسکتا ہے۔
معقول ایڈجسٹمنٹ کے ذریعے worker_processes 和 worker_connectionsکیشنگ کو فعال کرکے، ٹائم آؤٹ اور فائل ڈسکرپٹرز کو بہتر بنا کر، آپ Nginx پر بوجھ کے دباؤ کو نمایاں طور پر کم کر سکتے ہیں۔
Nginx ایک طاقتور ویب سرور ہے جو مناسب طریقے سے آپٹمائز ہونے پر آپ کی ویب سائٹ کے لیے بہترین کارکردگی فراہم کر سکتا ہے۔
یاد رکھیں، کسی بھی سوال کا جواب دیا جا سکتا ہے۔سائنساسے حل کرنے کے طریقے، سرور کی کارکردگی کو بہتر بنانا کوئی رعایت نہیں ہے۔
بروقت نگرانی اور ایڈجسٹ کریں۔، Nginx کو موثر طریقے سے چلانے کی کلید ہے۔ اگر آپ ان تکنیکوں میں مہارت حاصل کر سکتے ہیں، تو آپ کی ویب سائٹ زیادہ ٹریفک یا بدنیتی پر مبنی حملوں کے باوجود بھی محفوظ رہے گی۔
مجھے امید ہے کہ اس مضمون نے آپ کو متاثر کیا ہے، جلدی کریں اور اپنے Nginx کو بہتر بنائیں!
ہوپ چن ویلیانگ بلاگ ( https://www.chenweiliang.com/ ) کا اشتراک کیا گیا "اگر Nginx سرور CPU لوڈ اور پراسیس میموری کا استعمال زیادہ ہے تو مجھے کیا کرنا چاہیے؟" 》، آپ کے لیے مددگار۔
اس مضمون کا لنک شیئر کرنے میں خوش آمدید:https://www.chenweiliang.com/cwl-32093.html
مزید پوشیدہ چالوں کو کھولنے کے لیے، ہمارے ٹیلیگرام چینل میں شامل ہونے میں خوش آمدید!
پسند آئے تو شیئر اور لائک کریں! آپ کے شیئرز اور لائکس ہماری مسلسل حوصلہ افزائی ہیں!