PHP-FPM ترتیب: د اعظمي فعالیت لپاره د pm جامد وکاروئ

PHP-FPM ترتیب: د اعظمي فعالیت لپاره د pm جامد وکاروئ

د دې مقالې یوه نه ایډیټ شوې نسخه په اصل کې خپره شوې وه haydenjames.io او د هغې په اجازې دلته خپور شو لیکوال.

زه به تاسو ته په لنډه توګه ووایم چې څنګه د PHP-FPM تنظیم کولو لپاره غوره توبونه زیات کړئ ، ځنډ کم کړئ ، او CPU او حافظه په دوامداره توګه وکاروئ. په ډیفالټ ډول، په PHP-FPM کې د PM (پروسس مدیر) کرښه ده خوځنده، او که تاسو کافي حافظه نلرئ ، نو دا غوره ده چې نصب کړئ مختاړی. راځئ چې د php.net اسنادو پراساس د 2 کنټرول اختیارونه پرتله کړو او وګورو چې زما غوره له دوی څخه څنګه توپیر لري جامد د لوړ حجم ترافیک لپاره pm:

pm = متحرک - د ماشوم پروسو شمیر په متحرک ډول د لاندې لارښوونو پراساس تنظیم شوی: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = غوښتنه - پروسې د غوښتنې پراساس رامینځته کیږي (لکه څنګه چې د متحرک رامینځته کیدو سره مخالف وي ، کله چې pm.start_servers پیل کیږي کله چې خدمت پیل شي).
pm = جامد - د ماشومانو د پروسو شمیر ټاکل شوی او د پیرامیټر لخوا ښودل شوی pm.max_children.

د جزیاتو لپاره، وګورئ د نړیوالو لارښوونو بشپړ لیست php-fpm.conf.

د PHP-FPM پروسې مدیر او د CPU فریکوینسي کنټرولر ترمینځ ورته والی

دا ممکن غیر موضوع ښکاري، مګر زه به دا د PHP-FPM ترتیب کولو موضوع سره اړیکه ونیسم. چا لږترلږه یو ځل د پروسیسر سست تجربه نه ده کړې - په لپ ټاپ، مجازی ماشین یا وقف شوي سرور کې. د CPU فریکونسۍ اندازه کول په یاد ولرئ؟ دا اختیارونه د دې لپاره شتون لري نکس او وینډوز کولی شي د پروسیسر تروټټل ترتیب بدلولو سره د سیسټم فعالیت او ځواب ویونکي ته وده ورکړي مختاړی په فعالیت* دا ځل، راځئ چې توضیحات پرتله کړو او ورته والی وګورو:

والي = غوښتنه - د پروسیسر فریکونسۍ متحرک اندازه کول د اوسني بار پورې اړه لري. په چټکۍ سره اعظمي فریکونسۍ ته ځي او بیا د غیرفعالیت دورې په زیاتیدو سره دا کموي.
والي= محافظه کار= متحرک فریکونسۍ اندازه کول د اوسني بار پورې اړه لري. د غوښتنې په پرتله په اسانۍ سره فریکونسۍ زیاتوي او کموي.
والي = فعالیت - فریکونسۍ تل اعظمي وي.

د جزیاتو لپاره، وګورئ د پروسیسر فریکونسۍ تنظیم کونکي پیرامیټونو بشپړ لیست.

ورته والی وګورئ؟ ما غوښتل دا پرتله وښیم ترڅو تاسو قانع کړم چې دا کارول غوره دي pm جامد د PHP-FPM لپاره.

د پروسیسر تنظیم کونکي پیرامیټر لپاره د فعالیت په خوندي ډول د فعالیت زیاتولو کې مرسته کوي ځکه چې دا تقریبا په بشپړ ډول د سرور CPU محدودیت پورې اړه لري. د دې سربیره، البته، د تودوخې، د بیټرۍ چارج (په لپ ټاپ کې) او د پروسیسر په دوامداره توګه د 100٪ چلولو نور اړخیزې اغیزې هم شتون لري. د فعالیت ترتیب د پروسیسر ترټولو ګړندی فعالیت تضمینوي. د مثال په توګه، په اړه ولولئ په Raspberry Pi کې force_turbo پیرامیټر، د کوم سره چې د RPi پینل به تنظیم کونکي وکاروي د فعالیت، چیرې چې د فعالیت ښه والی به د ټیټ CPU ساعت سرعت له امله د پام وړ وي.

د اعظمي سرور فعالیت ترلاسه کولو لپاره د pm جامد کارول

د PHP-FPM اختیار pm جامد په پراخه کچه په سرور کې وړیا حافظې پورې اړه لري. که حافظه کمه وي، غوره ده چې غوره کړئ مختاړی او یا خوځنده. له بلې خوا ، که تاسو حافظه لرئ ، نو تاسو کولی شئ د ماښام په ترتیب کولو سره د PHP پروسې مدیر سر سر څخه مخنیوی وکړئ جامد د سرور اعظمي ظرفیت ته. په بل عبارت، که هر څه ښه محاسبه شي، تاسو اړتیا لرئ چې تاسیس کړئ pm.static د PHP-FPM پروسې اعظمي حجم ته چې اجرا کیدی شي ، پرته له دې چې د ټیټ حافظې یا کیچ سره ستونزې رامینځته کړي. مګر دومره لوړ ندی چې دا پروسیسرونه له پامه غورځوي او د PHP-FPM عملیاتو یوه ډله راټولوي چې د اجرا کیدو په تمه دي.

PHP-FPM ترتیب: د اعظمي فعالیت لپاره د pm جامد وکاروئ

په پورته سکرین شاټ کې، سرور لري pm = جامد او pm.max_children = 100، او دا د شته 10 څخه نږدې 32 GB وخت نیسي. روښانه شوي کالمونو ته پاملرنه وکړئ ، دلته هرڅه روښانه دي. په دې سکرین شاټ کې په ګوګل انلاینز کې نږدې 200 فعال کاروونکي (د 60 ثانیو څخه ډیر) وو. په دې کچه، نږدې 70٪ د PHP-FPM ماشومانو پروسې لاهم بې کاره دي. دا پدې مانا ده چې PHP-FPM تل د اوسني ترافیک په پام کې نیولو پرته د سرور سرچینو اعظمي مقدار ته ټاکل کیږي. یو بې کاره پروسه د ټرافیک لوړوالي ته انتظار کوي او سمدستي ځواب ورکوي. تاسو اړتیا نلرئ تر هغه پورې انتظار وکړئ pm د ماشوم پروسې به رامینځته کړي او بیا به یې پای ته ورسوي کله چې دوره پای ته ورسیږي pm.process_idle_timeout. ما ارزښت خورا لوړ وټاکه pm.max_requestsځکه چې دا یو کاري سرور دی چې په PHP کې هیڅ حافظه لیک نلري. تاسو کولی شئ نصب کړئ pm.max_requests = 0 د جامد سره که تاسو په موجوده او راتلونکي پی ایچ پی سکریپټونو کې په بشپړ ډول باوري یاست. مګر دا غوره ده چې د وخت په تیریدو سره سکریپټونه بیا پیل کړئ. ډیری غوښتنې تنظیم کړئ ، ځکه چې موږ غواړو د ماښام غیر ضروري لګښتونو څخه مخنیوی وکړو. د مثال په توګه، لږترلږه pm.max_requests = 1000 - په مقدار پورې اړه لري pm.max_children او په هره ثانیه کې د غوښتنو شمیر.

سکرین شاټ کمانډ ښیې د لینوکس سر، د u (کارن) او PHP-FPM کارن نوم لخوا فلټر شوی. یوازې لومړنۍ 50 یا څو پروسې ښودل شوي (ما په سمه توګه حساب نه دی کړی)، مګر په اصل کې پورته پورته احصایې ښیي چې د ټرمینل کړکۍ سره سمون لري. پدې حالت کې د % CPU (% CPU) لخوا ترتیب شوی. د ټولو 100 PHP-FPM پروسې لیدلو لپاره، کمانډ چل کړئ:

top -bn1 | grep php-fpm

کله چې د pm ondemand او متحرک وکاروئ

که تاسو pm کاروئ خوځندهد دې په څیر غلطۍ پیښیږي:

WARNING: [pool xxxx] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4 idle, and 59 total children

د پیرامیټر بدلولو هڅه وکړئ، تېروتنه به نه ځي، لکه په سرورفالټ کې پدې پوسټ کې تشریح شوي. په دې حالت کې، د pm.min ارزښت خورا کوچنی و، او څنګه چې د ویب ټرافیک خورا ډیر توپیر لري او لوړې څوکې او ژورې دره لري، نو دا ستونزمنه ده چې په مناسب ډول د ماسپښین تنظیم کړئ. خوځنده. معمولا pm کارول کیږي مختاړی, لکه څنګه چې په ورته پوسټ کې مشوره شوې. مګر دا خورا بد دی، ځکه چې مختاړی بې کاره پروسې صفر ته پای ته رسوي کله چې لږ یا هیڅ ترافیک شتون نلري ، او تاسو به لاهم د ترافیک بدلولو سر سر سره پای ته ورسیږئ. پرته لدې چې ، البته ، تاسو د انتظار لوی وخت ټاکلی. او بیا یې کارول غوره دي pm.static + لوړه شمیره pm.max_requests.

PM خوځنده او په ځانګړي توګه مختاړی کیدای شي په کار کې راشي که تاسو ډیری PHP-FPM حوضونه لرئ. د مثال په توګه، تاسو په مختلفو حوضونو کې ډیری cPanel حسابونه یا ډیری ویب پاڼې کوربه کوئ. زه د 100+ cpanel حسابونو او شاوخوا 200 ډومینونو سره سرور لرم، او pm.static یا حتی متحرک به ما خوندي نه کړي. ټول هغه څه چې تاسو ورته اړتیا لرئ دلته دي مختاړیپه هرصورت، له دوه پر دریمې برخې څخه ډیر ویب پاڼې لږ یا هیڅ ټرافیک ترلاسه کوي، او سره مختاړی د ماشوم ټولې پروسې به له مینځه ویسي ، کوم چې به موږ ډیر حافظه خوندي کړي! خوشبختانه، د cPanel پراختیا کونکو دا په پام کې ونیوله او ارزښت یې ډیفالټ ته وټاکه مختاړی. پخوا، کله چې ډیفالټ و خوځنده، PHP-FPM په ټوله کې د مصروف شریک سرورونو لپاره مناسب نه و. ډیری یې کارولي دي suPHPځکه چې ماسپښین خوځنده حتی د غیر فعال حوضونو او cPanel PHP-FPM حسابونو سره حافظه مصرفوي. ډیری احتمال، که ټرافیک ښه وي، تاسو به په سرور کې د PHP-FPM حوضونو لوی شمیر سره کوربه نه شئ (شریک کوربه کول).

پایلې

که تاسو د PHP-FPM کاروئ او ستاسو ټرافيک دروند دی، د پروسې مدیران مختاړی и خوځنده د PHP-FPM لپاره به د دوی د اصلي سر له امله محدود تولید وي. خپل سیسټم درک کړئ او د PHP-FPM پروسې د اعظمي سرور ظرفیت سره سم تنظیم کړئ. لومړی جوړه pm.max_children د اعظمي pm کارولو پورې اړه لري خوځنده او یا مختاړی، او بیا دا ارزښت یوې کچې ته لوړ کړئ چیرې چې حافظه او پروسیسر به پرته له ډیر بار کولو کار وکړي. تاسو به دا په پام کې ونیسئ pm جامد، له هغه ځایه چې تاسو په حافظه کې هرڅه لرئ ، د ترافیک سپکاوی به د وخت په تیریدو سره د لږ CPU سپکونو لامل شي ، او د سرور او CPU بار اوسط کچه به ټیټ شي. د اوسط PHP-FPM پروسې اندازه په ویب سرور پورې اړه لري او لاسي ترتیب ته اړتیا لري، نو د پروسې ډیر اتوماتیک مدیران دي خوځنده и مختاړی - ډیر مشهور. زه امید لرم چې مقاله ګټوره وه.

DUP د بنچمارک چارټ اضافه شوی ab. که چیرې د PHP-FPM پروسې په حافظه کې وي ، فعالیت د حافظې مصرف په لګښت کې وده کوي چیرې چې دوی ناست وي او انتظار کوي. د ځان لپاره غوره انتخاب ومومئ.

PHP-FPM ترتیب: د اعظمي فعالیت لپاره د pm جامد وکاروئ

سرچینه: www.habr.com

Add a comment