آرٽيڪل ڊاريڪٽري
هڪ سرور ڪيترا هڪ ئي وقت استعمال ڪندڙن کي سنڀالي سگهي ٿو ان تي منحصر ناهي ته ان ۾ ڪيترا ڪور آهن، پر ان تي منحصر آهي ته هر عمل ڪيتري ميموري استعمال ڪري ٿو.
هي بيان شايد اشتعال انگيز لڳي، پر اهو آپريشن ۽ سار سنڀال جي صنعت ۾ سڀ کان وڌيڪ حقيقي ۽ ڏکوئيندڙ تجربو آهي.
ياداشت اهم رڪاوٽ ڇو آهي؟
گھڻا ماڻهو 8-ڪور سي پي يو ۽ 24GB ميموري سان هڪ VPS ڏسندا آهن ۽ لاشعوري طور تي سوچيندا آهن ته اهي آساني سان سوين PHP-FPM عمل هلائي سگهن ٿا.
جڏهن ته، حقيقت ۾، هڪ واحد PHP عمل جي RSS ميموري استعمال اڪثر 200MB جيترو هوندو آهي.
هي ڪمانڊ لائن ذريعي اصل جاچ ذريعي حاصل ڪيل نتيجو آهي:
ps --no-headers -o rss -p $(pgrep php-fpm) | awk '{sum+=$1} END {print sum/NR/1024 " MB"}'
HestiaCP جي پيچيده فريم ورڪ ۽ ملٽي پلگ ان ماحول ۾ ، خاص طور تي OPcache اصلاح کان سواءِ، 200MB معمول آهي.
ان جو مطلب آهي ته ميموري، سي پي يو نه، سخت حد آهي جيڪا وڌ ۾ وڌ هم آهنگي جو تعين ڪري ٿي.

تجويز ڪيل ترتيب واري فائل (php-fpm.conf)
pm = dynamic
pm.max_children = 80
pm.start_servers = 16
pm.min_spare_servers = 8
pm.max_spare_servers = 24
pm.max_requests = 500
pm.process_idle_timeout = 10s
request_terminate_timeout = 60s
پيرا ميٽر جي حساب ڪتاب جي منطق ۽ سيٽنگ جي بنياد
| ٺاھ جوڙ جي ماپ | قيمت مقرر ڪرڻ | بنيادي حساب ۽ سيٽ اپ جو بنياد |
|---|---|---|
| pm | dynamic | متحرڪ موڊ عملن جي لچڪدار اضافي يا ختم ڪرڻ جي اجازت ڏئي ٿو، هڪجهڙائي جي ضرورتن جي بنياد تي، جواب جي رفتار ۽ ياداشت جي استعمال کي متوازن ڪرڻ. |
| pm.max_children | 80 | 24GB ڪل ميموري مائنس سسٽم ڪرنل ۽ هن MySQL/RedisNginx کان پوءِ، PHP لاءِ لڳ ڀڳ 16GB بچيل آهي.16,384 MB / 200 MB ≈ 81.9ان کي 80 تي سيٽ ڪرڻ سان هاءِ ڪنڪرنسي دوران OOM (ياداشت کان ٻاهر) مڪمل طور تي ختم ٿي سگهي ٿو. |
| پي ايم.شروع_سرور | 16 | شروعاتي وقت تي گرم ڪرڻ کي سي پي يو ڪور جي تعداد (8 ڪور × 2 = 16) جي ٻيڻي تي مقرر ڪيو ويو آهي ته جيئن يقيني بڻائي سگهجي ته سروس ٻيهر شروع ٿيڻ کان پوءِ بنيادي ڪنڪرنسي کي فوري طور تي سنڀالي سگهي. |
| پي ايم. منٽ_اسپيئر_سرور | 8 | سي پي يو ڪور جي ڳڻپ کي 8 ڪور تي سيٽ ڪريو ته جيئن گهٽ ٽرئفڪ جي عرصي دوران ڪنهن به وقت نئين درخواستن جو جواب ڏئي سگهجي. |
| پي ايم. ميڪس_اسپيئر_سرور | 24 | ٽريفڪ گهٽجڻ کان پوءِ عملن جي هڪ معتدل تعداد کي برقرار رکڻ لاءِ، معمولي اتار چڙهاؤ کي سنڀالڻ لاءِ ان کي سي پي يو ڪور جي تعداد (8 ڪور × 3 = 24) جي 3 ڀيرا تي سيٽ ڪريو. |
| pm.max_requests | 500 | جيڪڏهن هڪ واحد عمل 200MB جي وڏي بنياد تائين پهچي ٿو، ته درخواستن جو تعداد 500 تائين گهٽائڻ سان عمل تباهه ٿي ويندو ۽ ٻيهر تعمير ڪيو ويندو، جيڪو ضمني ياداشت جي ليڪ کي وڌيڪ تيزيءَ سان صاف ڪري سگهي ٿو. |
| pm.process_idle_timeout | 10s | وڌيڪ min_spare_servers بيڪار عمل خودڪار طريقي سان جاري ڪيا ويندا آهن ۽ 10 سيڪنڊن جي ڪنهن به درخواست کان پوءِ سسٽم ميموري ڏانهن موٽندا آهن. |
ضروري سپورٽنگ سيٽنگون ۽ اصلاح جون تجويزون
1. ٽائيم آئوٽ اينٽي هينگ اوور ميڪانيزم
request_terminate_timeout = 60s اِها ئي ڪُنجي آهي.
اهو زبردستي انهن عملن کي ختم ڪري سگهي ٿو جيڪي ڊيٽابيس ڊيڊ لاڪ يا ٽئين پارٽي API بلاڪنگ جي ڪري ڦاسي پيا آهن.
ساڳئي وقت، نينگڪس جي fastcgi_read_timeout ان کي گهٽ ۾ گهٽ 60 سيڪنڊ رکڻ گهرجي، ٻي صورت ۾ ڪلائنٽ ان کي وقت کان اڳ وصول ڪندو. 504 Gateway Timeout.
2. ياداشت جي رڪاوٽن کي دور ڪرڻ لاءِ حڪمت عمليون
وڌ ۾ وڌ 80 هڪجهڙائي واري عمل جو مطلب آهي ته انتهائي هڪجهڙائي واري حالتن ۾، سسٽم هڪ ئي وقت ۾ وڌ ۾ وڌ 80 متحرڪ HTTP درخواستن کي سنڀالي سگهي ٿو.
جيڪڏهن توهان صلاحيت کي وڌيڪ بهتر بڻائڻ چاهيو ٿا، ته هر عمل ۾ ياداشت جي استعمال کي گهٽائڻ تي ڌيان ڏيڻ گهرجي.
- OPcache کي فعال ڪريو: موجود آهي
php.iniوچولي ترتيبopcache.enable=1۽opcache.memory_consumption=256بائيٽ ڪوڊ ڪيشنگ هڪ واحد عمل جي ميموري استعمال کي 200MB کان 60 ~ 100MB تائين گهٽائي سگهي ٿي. - memory_limit جو معقول ڪنٽرول: ٿيندو
php.iniوچmemory_limitمحدود128Mيا نه256Mانفرادي غير معمولي لکتن کي روڪڻ لاءِلامحدوداهو تمام گهڻي ياداشت استعمال ڪري ٿو.
هڪ ڀيرو هڪ عمل جي ياداشت جو استعمال 100MB تائين گهٽجي ويندو آهي...pm.max_children ان کي محفوظ طور تي اپ گريڊ ڪري سگھجي ٿو 150 ان کان علاوه، ڪنڪرنسي جي صلاحيت تقريبن ٻيڻي ٿي وئي آهي.
مستند نقطه نظر جو حوالو ڏنو ويو
سرڪاري Nginx دستاويزن ۾ سفارشن جي مطابق :
"وسائل جي ختم ٿيڻ کي روڪڻ لاءِ فاسٽ سي جي آءِ ايپليڪيشنن کي هميشه ٽائيم آئوٽ هدايتن سان مانيٽر ڪيو وڃي."
(ذريعو: نينگڪس دستاويز)
سرڪاري پي ايڇ پي مينوئل واضح طور تي بيان ڪري ٿو:
"pm.max_children ٻارن جي عملن جي وڌ ۾ وڌ تعداد کي بيان ڪري ٿو جيڪي ٺاهيا وڃن. هي سڀ کان اهم هدايت آهي."
(ذريعو: PHP-FPM دستاويز)
اهي مستند خيال اسان جي عملن سان مڪمل طور تي هم آهنگ آهن، اهو ثابت ڪن ٿا ته اصلاح جو منطق صرف تجربي تي ٻڌل ناهي، پر معياري بهترين عملن تي پڻ.
نتيجو: منهنجا نقطه نظر ۽ اهم اقتباس
اعليٰ اتفاق وارين حالتن ۾، سي پي يو انجن آهي، ياداشت ايندھن جي ٽانڪي آهي، ۽ PHP-FPM فليٽ ڊسپيچر آهي.
انجن ڪيترو به طاقتور هجي، جيڪڏهن فيول ٽينڪ ڪافي وڏو نه آهي، ته قافلو گهڻو پري نه ويندو.
سچا ماهر اکيون بند ڪري پيرا ميٽرز کي وڌ کان وڌ نه ٿا ڪن، پر هر عمل جي ياداشت جي استعمال جو صحيح حساب لڳائين ٿا ته جيئن فضول ۽ اوور فلو ٻنهي کان بچي سگهجي.
اصلاح جو جوهر محدود وسيلن سان بهترين توازن ڳولڻ آهي.
هي صرف هڪ ٽيڪنالاجي ناهي، پر هڪ فلسفو پڻ آهي.
تنهن ڪري، اهو يقين ڪرڻ بند ڪريو ته "ڪورز جو تعداد هر شيءِ جو تعين ڪري ٿو." جيڪو واقعي هم وقت سازي جي حد جو تعين ڪري ٿو اهو ياداشت تي توهان جو ڪنٽرول آهي.
عمل ڪريو ۽ پنهنجي VPS کي ان جي مڪمل صلاحيت سان بهتر بڻايو، ياداشت جي هر بوند مان وڌ کان وڌ فائدو حاصل ڪريو.
اميد آهي ته، چن ويليانگ جي بلاگ ( https://www.chenweiliang.com/ ) تي شيئر ڪيل مضمون "8-ڪور 24G VPS جي ياداشت ختم ٿي رهي آهي؟ HestiaCP تحت PHP-FPM پروسيس پول جي انتهائي ٽيوننگ" توهان لاءِ مددگار ثابت ٿيندو.
هن مضمون جي لنڪ شيئر ڪرڻ لاءِ آزاد محسوس ڪريو: https://www.chenweiliang.com/cwl-34509.html
