PHP-FPM அமைவு: அதிகபட்ச செயல்திறனுக்காக pm நிலையானதைப் பயன்படுத்தவும்

PHP-FPM அமைவு: அதிகபட்ச செயல்திறனுக்காக pm நிலையானதைப் பயன்படுத்தவும்

இந்தக் கட்டுரையின் திருத்தப்படாத பதிப்பு முதலில் வெளியிடப்பட்டது haydenjames.io மற்றும் அவரது அனுமதியுடன் இங்கே வெளியிடப்பட்டது நூலாசிரியர்.

PHP-FPMஐ எவ்வாறு சிறப்பாக உள்ளமைப்பது என்பதை சுருக்கமாகச் சொல்கிறேன், செயல்திறனை அதிகரிக்க, தாமதத்தைக் குறைக்க மற்றும் CPU மற்றும் நினைவகத்தை இன்னும் சீராகப் பயன்படுத்துங்கள். இயல்பாக, PHP-FPM இல் PM (செயல்முறை மேலாளர்) வரி மாறும், மற்றும் உங்களிடம் போதுமான நினைவகம் இல்லை என்றால், அதை நிறுவுவது நல்லது தேவை. php.net ஆவணத்தின் அடிப்படையில் 2 கட்டுப்பாட்டு விருப்பங்களை ஒப்பிட்டு, அவற்றில் இருந்து எனக்கு பிடித்தமானது எவ்வாறு வேறுபடுகிறது என்பதைப் பார்ப்போம். நிலையான அதிக அளவு போக்குவரத்துக்கு மாலை:

pm = மாறும் - குழந்தை செயல்முறைகளின் எண்ணிக்கை பின்வரும் கட்டளைகளின் அடிப்படையில் மாறும் வகையில் கட்டமைக்கப்படுகிறது: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = தேவை - செயல்முறைகள் தேவைக்கேற்ப உருவாக்கப்படுகின்றன (டைனமிக் உருவாக்கத்திற்கு மாறாக, சேவை தொடங்கும் போது pm.start_servers தொடங்கப்படும் போது).
pm = நிலையான - குழந்தை செயல்முறைகளின் எண்ணிக்கை நிலையானது மற்றும் அளவுருவால் குறிக்கப்படுகிறது pm.அதிகபட்சம்_குழந்தைகள்.

விவரங்களுக்கு, பார்க்கவும் உலகளாவிய வழிமுறைகளின் முழுமையான பட்டியல் php-fpm.conf.

PHP-FPM செயல்முறை மேலாளர் மற்றும் CPU அதிர்வெண் கட்டுப்படுத்தி இடையே உள்ள ஒற்றுமைகள்

இது ஆஃப்டாபிக் போல் தோன்றலாம், ஆனால் நான் இதை PHP-FPM உள்ளமைவு என்ற தலைப்பில் இணைக்கப் போகிறேன். மடிக்கணினி, மெய்நிகர் இயந்திரம் அல்லது பிரத்யேக சர்வரில் ஒரு முறையாவது செயலி மந்தநிலையை அனுபவிக்காதவர் யார்? CPU அதிர்வெண் அளவிடுதல் நினைவிருக்கிறதா? இந்த விருப்பங்கள் கிடைக்கின்றன nix மற்றும் Windows செயலி த்ரோட்டில் அமைப்பை மாற்றுவதன் மூலம் கணினி செயல்திறன் மற்றும் மறுமொழியை மேம்படுத்த முடியும் தேவை மீது செயல்திறன்*. இந்த நேரத்தில், விளக்கங்களை ஒப்பிட்டு, ஒற்றுமைகளைப் பார்ப்போம்:

கவர்னர் = கோரிக்கை - தற்போதைய சுமையைப் பொறுத்து செயலி அதிர்வெண்ணின் மாறும் அளவிடுதல். அதிகபட்ச அதிர்வெண்ணுக்கு விரைவாகத் தாவுகிறது மற்றும் செயலற்ற காலங்கள் அதிகரிக்கும் போது அதைக் குறைக்கிறது.
கவர்னர்=பழமைவாதி= தற்போதைய சுமையைப் பொறுத்து மாறும் அதிர்வெண் அளவிடுதல். ஆன்டெமாண்டை விட அதிர்வெண்ணை மிகவும் சீராக அதிகரிக்கிறது மற்றும் குறைக்கிறது.
கவர்னர் = செயல்திறன் - அதிர்வெண் எப்போதும் அதிகபட்சம்.

விவரங்களுக்கு, பார்க்கவும் செயலி அதிர்வெண் சீராக்கி அளவுருக்களின் முழு பட்டியல்.

ஒற்றுமைகளைப் பார்க்கிறீர்களா? இதைப் பயன்படுத்துவது சிறந்தது என்று உங்களை நம்ப வைக்க இந்த ஒப்பீட்டைக் காட்ட விரும்பினேன் pm நிலையான PHP-FPMக்கு.

செயலி சீராக்கி அளவுருவிற்கு செயல்திறன் இது முற்றிலும் சர்வரின் CPU வரம்பைச் சார்ந்து இருப்பதால், செயல்திறனைப் பாதுகாப்பாக அதிகரிக்க உதவுகிறது. இது தவிர, நிச்சயமாக, வெப்பநிலை, பேட்டரி சார்ஜ் (மடிக்கணினியில்) மற்றும் செயலியை தொடர்ந்து 100% இயக்குவதால் ஏற்படும் பிற பக்க விளைவுகள் போன்ற காரணிகளும் உள்ளன. செயல்திறன் அமைப்பு வேகமான செயலி செயல்திறனை உறுதி செய்கிறது. எடுத்துக்காட்டாக, பற்றி படிக்கவும் Raspberry Pi இல் force_turbo அளவுரு, RPi பேனல் ரெகுலேட்டரைப் பயன்படுத்தும் செயல்திறன், குறைந்த CPU கடிகார வேகம் காரணமாக செயல்திறன் மேம்பாடு மிகவும் கவனிக்கத்தக்கதாக இருக்கும்.

அதிகபட்ச சர்வர் செயல்திறனை அடைய pm ஸ்டேடிக் பயன்படுத்துகிறது

PHP-FPM விருப்பம் pm நிலையான பெரும்பாலும் சர்வரில் உள்ள இலவச நினைவகத்தைப் பொறுத்தது. நினைவகம் குறைவாக இருந்தால், தேர்வு செய்வது நல்லது தேவை அல்லது மாறும். மறுபுறம், உங்களிடம் நினைவகம் இருந்தால், pm ஐ அமைப்பதன் மூலம் PHP செயல்முறை மேலாளரைத் தவிர்க்கலாம் நிலையான அதிகபட்ச சர்வர் திறன். வேறு வார்த்தைகளில் கூறுவதானால், எல்லாம் சரியாக கணக்கிடப்பட்டால், நீங்கள் நிறுவ வேண்டும் pm. நிலையான செயல்படுத்தக்கூடிய PHP-FPM செயல்முறைகளின் அதிகபட்ச தொகுதிக்கு, குறைந்த நினைவகம் அல்லது தற்காலிக சேமிப்பில் சிக்கல்களை உருவாக்காமல். ஆனால் அது செயலிகளை மூழ்கடிக்கும் அளவுக்கு அதிகமாக இல்லை மற்றும் செயல்படுத்தப்படுவதற்கு காத்திருக்கும் PHP-FPM செயல்பாடுகளை குவிக்கிறது..

PHP-FPM அமைவு: அதிகபட்ச செயல்திறனுக்காக pm நிலையானதைப் பயன்படுத்தவும்

மேலே உள்ள ஸ்கிரீன்ஷாட்டில், சர்வரில் உள்ளது pm = நிலையான மற்றும் pm.max_children = 100, மற்றும் கிடைக்கக்கூடிய 10 இல் இது தோராயமாக 32 ஜிபி ஆகும். தனிப்படுத்தப்பட்ட நெடுவரிசைகளுக்கு கவனம் செலுத்துங்கள், இங்கே எல்லாம் தெளிவாக உள்ளது. இந்த ஸ்கிரீன்ஷாட்டில் Google Analytics இல் சுமார் 200 செயலில் உள்ள பயனர்கள் (60 வினாடிகளுக்கு மேல்) இருந்தனர். இந்த நிலையில், தோராயமாக 70% PHP-FPM குழந்தை செயல்முறைகள் இன்னும் செயலற்ற நிலையில் உள்ளன. தற்போதைய போக்குவரத்தைப் பொருட்படுத்தாமல் PHP-FPM எப்போதும் அதிகபட்ச சேவையக ஆதாரங்களுக்கு அமைக்கப்படும் என்பதே இதன் பொருள். ஒரு செயலற்ற செயல்முறை போக்குவரத்து உச்சநிலைக்கு காத்திருக்கிறது மற்றும் உடனடியாக பதிலளிக்கிறது. அதுவரை காத்திருக்க வேண்டியதில்லை pm குழந்தை செயல்முறைகளை உருவாக்கி, காலம் முடிவடையும் போது அவற்றை நிறுத்தும் pm.process_idle_timeout. நான் மதிப்பை மிக அதிகமாக அமைத்தேன் pm.max_requestsஏனெனில் இது PHP இல் நினைவக கசிவுகள் இல்லாத வேலை செய்யும் சேவையகம். நீங்கள் நிறுவலாம் pm.max_requests = 0 நீங்கள் ஏற்கனவே இருக்கும் மற்றும் எதிர்கால PHP ஸ்கிரிப்ட்களில் முழு நம்பிக்கையுடன் இருந்தால் நிலையானது. ஆனால் காலப்போக்கில் ஸ்கிரிப்ட்களை மீண்டும் இயக்குவது நல்லது. அதிக எண்ணிக்கையிலான கோரிக்கைகளை அமைக்கவும், ஏனென்றால் தேவையற்ற pm செலவுகளைத் தவிர்க்க விரும்புகிறோம். உதாரணமாக, குறைந்தபட்சம் pm.max_requests = 1000 - அளவைப் பொறுத்து pm.அதிகபட்சம்_குழந்தைகள் மற்றும் வினாடிக்கு கோரிக்கைகளின் எண்ணிக்கை.

ஸ்கிரீன்ஷாட் கட்டளையைக் காட்டுகிறது லினக்ஸ் டாப், u (பயனர்) மற்றும் PHP-FPM பயனர்பெயர் மூலம் வடிகட்டப்பட்டது. முதல் 50 அல்லது அதற்கு மேற்பட்ட செயல்முறைகள் மட்டுமே காட்டப்படுகின்றன (நான் சரியாகக் கணக்கிடவில்லை), ஆனால் முக்கியமாக முனைய சாளரத்தில் பொருந்தக்கூடிய சிறந்த புள்ளிவிவரங்களைக் காட்டுகிறது. இந்த வழக்கில் % CPU (%CPU) மூலம் வரிசைப்படுத்தப்பட்டது. அனைத்து 100 PHP-FPM செயல்முறைகளையும் பார்க்க, கட்டளையை இயக்கவும்:

top -bn1 | grep php-fpm

pm ondemand மற்றும் dynamic ஐ எப்போது பயன்படுத்த வேண்டும்

நீங்கள் 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 பயன்படுத்தப்படுகிறது தேவை, என அதே பதிவில் அறிவுறுத்தப்பட்டுள்ளது. ஆனால் இது இன்னும் மோசமானது, ஏனென்றால் தேவை ட்ராஃபிக் குறைவாக இருக்கும் போது அல்லது ட்ராஃபிக் இல்லாத போது செயலற்ற செயல்முறைகளை பூஜ்ஜியமாக நிறுத்துகிறது. நிச்சயமாக, நீங்கள் ஒரு பெரிய காத்திருப்பு நேரத்தை அமைக்கும் வரை. பின்னர் பயன்படுத்துவது நல்லது pm. நிலையான + அதிக எண்ணிக்கை pm.max_requests.

PM மாறும் மற்றும் குறிப்பாக தேவை உங்களிடம் பல PHP-FPM குளங்கள் இருந்தால் பயனுள்ளதாக இருக்கும். எடுத்துக்காட்டாக, நீங்கள் பல cPanel கணக்குகள் அல்லது பல இணையதளங்களை வெவ்வேறு பூல்களில் ஹோஸ்ட் செய்கிறீர்கள். என்னிடம் 100+ cpanel கணக்குகள் மற்றும் சுமார் 200 டொமைன்கள் கொண்ட சர்வர் உள்ளது, pm.static அல்லது dynamic கூட என்னைக் காப்பாற்றாது. உங்களுக்கு இங்கே தேவை தேவை, எல்லாவற்றிற்கும் மேலாக, மூன்றில் இரண்டு பங்கு வலைத்தளங்கள் சிறிதளவு அல்லது டிராஃபிக்கைப் பெறவில்லை தேவை அனைத்து குழந்தை செயல்முறைகளும் வீழ்ச்சியடையும், இது எங்களுக்கு நிறைய நினைவகத்தை சேமிக்கும்! அதிர்ஷ்டவசமாக, cPanel டெவலப்பர்கள் இதைக் கவனித்து மதிப்பை இயல்புநிலைக்கு அமைத்தனர் தேவை. முன்பு, இயல்புநிலை இருந்தபோது மாறும், PHP-FPM ஆனது பிஸியான பகிரப்பட்ட சேவையகங்களுக்கு ஏற்றதாக இல்லை. பலர் பயன்படுத்தினர் suPHP, ஏனெனில் பி.எம் மாறும் செயலற்ற குளங்கள் மற்றும் cPanel PHP-FPM கணக்குகளில் கூட நினைவகத்தை நுகரும். பெரும்பாலும், போக்குவரத்து நன்றாக இருந்தால், அதிக எண்ணிக்கையிலான PHP-FPM பூல்களைக் கொண்ட (பகிரப்பட்ட ஹோஸ்டிங்) சேவையகத்தில் நீங்கள் ஹோஸ்ட் செய்யப்பட மாட்டீர்கள்.

முடிவுக்கு

நீங்கள் PHP-FPM ஐப் பயன்படுத்துகிறீர்கள் மற்றும் உங்கள் போக்குவரத்து அதிகமாக இருந்தால், செயலாக்க மேலாளர்கள் தேவை и மாறும் PHP-FPMக்கு அவற்றின் உள்ளார்ந்த மேல்நிலை காரணமாக வரையறுக்கப்பட்ட செயல்திறன் இருக்கும். உங்கள் கணினியைப் புரிந்துகொண்டு, அதிகபட்ச சர்வர் திறனுக்கு ஏற்ப PHP-FPM செயல்முறைகளை உள்ளமைக்கவும். முதல் தொகுப்பு pm.அதிகபட்சம்_குழந்தைகள் அதிகபட்ச pm பயன்பாட்டைப் பொறுத்து மாறும் அல்லது தேவை, பின்னர் நினைவகம் மற்றும் செயலி அதிக சுமை இல்லாமல் வேலை செய்யும் நிலைக்கு இந்த மதிப்பை அதிகரிக்கவும். அதை நீங்கள் கவனிப்பீர்கள் pm நிலையான, நீங்கள் நினைவகத்தில் அனைத்தையும் கொண்டிருப்பதால், ட்ராஃபிக் ஸ்பைக்குகள் காலப்போக்கில் குறைவான CPU ஸ்பைக்குகளை ஏற்படுத்தும், மேலும் சர்வர் மற்றும் CPU சுமை சராசரிகள் சமன் செய்யும். சராசரி PHP-FPM செயல்முறை அளவு இணைய சேவையகத்தைப் பொறுத்தது மற்றும் கையேடு உள்ளமைவு தேவைப்படுகிறது, எனவே அதிக தானியங்கு செயல்முறை மேலாளர்கள் மாறும் и தேவை - மிகவும் பிரபலமானது. கட்டுரை பயனுள்ளதாக இருந்தது என்று நம்புகிறேன்.

DUP பெஞ்ச்மார்க் விளக்கப்படம் சேர்க்கப்பட்டது ab. PHP-FPM செயல்முறைகள் நினைவகத்தில் இருந்தால், அவை உட்கார்ந்து காத்திருக்கும் இடத்தில் நினைவக நுகர்வு செலவில் செயல்திறன் அதிகரிக்கிறது. உங்களுக்கான சிறந்த விருப்பத்தைக் கண்டறியவும்.

PHP-FPM அமைவு: அதிகபட்ச செயல்திறனுக்காக pm நிலையானதைப் பயன்படுத்தவும்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்