லினக்ஸில் அதிக ரேம் உட்கொள்வதிலிருந்து PHP-FPM ஐ எவ்வாறு தடுப்பது


நீங்கள் ஒரு LEMP (Linux, NGINX, MySQL/MariaDB, மற்றும் PHP) அடுக்கைப் பயன்படுத்தினால், நீங்கள் PHP செயலாக்கத்திற்காக NGINX (HTTP சேவையகமாக) க்குள் FastCGI ப்ராக்ஸிஸைப் பயன்படுத்துகிறீர்கள். PHP-FPM (FastCGI செயல்முறை மேலாளரின் சுருக்கமாகும்) என்பது பரவலாகப் பயன்படுத்தப்படும் மற்றும் உயர் செயல்திறன் கொண்ட மாற்று PHP FastCGI செயல்படுத்தலாகும்.

லினக்ஸில் LEMP Stack ஐ அமைப்பதற்கான பயனுள்ள வழிகாட்டிகள் இங்கே.

  • உபுண்டு 20.04 இல் PhpMyAdmin உடன் LEMP அடுக்கை நிறுவுவது எப்படி
  • CentOS 8 இல் LEMP சேவையகத்தை எவ்வாறு நிறுவுவது
  • டெபியன் 10 சேவையகத்தில் LEMP ஐ எவ்வாறு நிறுவுவது

சமீபத்தில், எங்கள் LEMP வலை சேவையகங்களில் உள்ள எங்கள் அனைத்து PHP வலைத்தளங்களும் மெதுவாகிவிட்டன, இறுதியில் சேவையகத்தில் உள்நுழைவதில் பதிலளிப்பதை நிறுத்திவிட்டன. கணினி ரேமில் குறைவாக இயங்குவதை நாங்கள் கண்டறிந்தோம்: பின்வரும் ஸ்கிரீன் ஷாட்டில் (பார்வைகள் - கணினி கண்காணிப்பு கருவி) சுட்டிக்காட்டப்பட்டுள்ளபடி, PHP-FPM பெரும்பாலான ரேமை உட்கொண்டது.

$ glances

இந்த கட்டுரையில், லினக்ஸில் PHP-FPM ஐ அதிகமாக உட்கொள்வதை அல்லது உங்கள் கணினி நினைவகம் (ரேம்) எவ்வாறு தடுப்பது என்பதைக் காண்பிப்போம். இந்த வழிகாட்டியின் முடிவில், PHP-FPM நினைவக நுகர்வு 50% அல்லது அதற்கு மேற்பட்டதைக் குறைப்பது எப்படி என்பதை நீங்கள் கற்றுக் கொள்வீர்கள்.

PHP-FPM நினைவக பயன்பாட்டைக் குறைக்கவும்

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

இயல்புநிலை பூல் www மற்றும் அதன் உள்ளமைவு கோப்பு /etc/php-fpm.d/www.conf (CentOS/RHEL/Fedora இல்) அல்லது /etc/php/7.4/fpm/pool.d/www.conf ( on உபுண்டு/டெபியன்/புதினா).

$ sudo vim /etc/php-fpm.d/www.conf             [On CentOS/RHEL/Fedora]
$ sudo vim /etc/php/7.4/fpm/pool.d/www.conf    [On Ubuntu/Debian/Mint]

பின்வரும் வழிமுறைகளைக் கண்டறிந்து, உங்கள் பயன்பாட்டு வழக்குக்கு ஏற்ப அவற்றின் மதிப்பை அமைக்கவும். கருத்து தெரிவிக்கப்பட்ட வழிமுறைகளுக்கு, நீங்கள் அவற்றைக் குறைக்க வேண்டும்.

pm = ondemand
pm.max_children = 80
pm.process_idle_timeout = 10s
pm.max_requests = 200

மேற்கண்ட வழிமுறைகளையும் அவற்றின் மதிப்புகளையும் சுருக்கமாக விளக்குவோம். செயல்முறை செயல்முறைகள் குழந்தை செயல்முறைகளின் எண்ணிக்கையை எவ்வாறு கட்டுப்படுத்துகின்றன என்பதை பி.எம். இயல்புநிலை முறை மாறும், அதாவது குழந்தைகளின் எண்ணிக்கை (குழந்தை செயல்முறைகள்) pm.max_children உள்ளிட்ட வேறு சில வழிமுறைகளைப் பொறுத்து மாறும் வகையில் அமைக்கப்படுகிறது, இது ஒரே நேரத்தில் உயிருடன் இருக்கக்கூடிய அதிகபட்ச குழந்தைகளின் எண்ணிக்கையை வரையறுக்கிறது.

தொடக்கத்தில் எந்தவொரு குழந்தை செயல்முறைகளும் உருவாக்கப்படாத, ஆனால் தேவைக்கேற்ப உருவாக்கப்படும் ஒன்மாண்ட் திட்டமே மிகவும் சிறந்த செயல்முறை மேலாளர். புதிய கோரிக்கைகள் pm.max_children மற்றும் pm.process_idle_timeout ஆகியவற்றின் அடிப்படையில் இணைக்கப்படும் போது மட்டுமே குழந்தை செயல்முறைகள் முடக்கப்படும், இது ஒரு செயலற்ற செயல்முறை கொல்லப்படும் விநாடிகளின் எண்ணிக்கையை வரையறுக்கிறது.

கடைசியாக, குறைந்தது அல்ல, ஒவ்வொரு குழந்தை செயல்முறையும் மீண்டும் பிறப்பதற்கு முன் செயல்படுத்த வேண்டிய கோரிக்கைகளின் எண்ணிக்கையை வரையறுக்கும் pm.max_requests அளவுருவை அமைக்க வேண்டும். இந்த அளவுரு 3 வது தரப்பு நூலகங்களில் நினைவக கசிவுகளுக்கு ஒரு தீர்வாகவும் பயன்படுத்தப்படலாம் என்பதை நினைவில் கொள்க.

குறிப்பு: PHP-FPM ஐ இயக்க சிறந்த வழி.

மேலே உள்ள இந்த உள்ளமைவுகளை உருவாக்கிய பிறகு, எங்கள் சேவையகத்தில் ரேம் பயன்பாடு இப்போது நன்றாக இருப்பதை நான் கவனித்தேன். இந்த தலைப்பு அல்லது கேள்விகள் தொடர்பான பகிர்வதற்கு உங்களுக்கு ஏதேனும் எண்ணங்கள் இருக்கிறதா? கீழேயுள்ள கருத்து படிவம் வழியாக எங்களை அணுகவும்.