HestiaCP php-fpm പ്രോസസ്സ് ധാരാളം CPU റിസോഴ്‌സുകൾ എടുക്കുന്നു. എനിക്ക് അത് എങ്ങനെ ഒപ്റ്റിമൈസ് ചെയ്യാം?

HestiaCP സെർവർ CPU സ്പൈക്കുകളോ? PHP-FPM പ്രോസസ്സ് ഒപ്റ്റിമൈസേഷനിലേക്കുള്ള ഒരു സമ്പൂർണ്ണ ഗൈഡ്!

HestiaCP php-fpm പ്രോസസ്സ് ധാരാളം CPU റിസോഴ്‌സുകൾ എടുക്കുന്നു. എനിക്ക് അത് എങ്ങനെ ഒപ്റ്റിമൈസ് ചെയ്യാം?

നിങ്ങളുടെ സെർവർ സിപിയു എപ്പോഴും 100% ആണോ? ഫാനുകൾ ഭ്രാന്തമായി കറങ്ങുന്നുണ്ടോ? നിങ്ങളുടെ വെബ്‌സൈറ്റ് പതുക്കെ ലോഡ് ആകുന്നുണ്ടോ? കുറ്റവാളി php-fpm ആയിരിക്കാം!

ഞാൻ അടുത്തിടെ കണ്ടെത്തി chenweiliang.com ഈ PHP പൂൾ php-fpm ആ പ്രക്രിയ സിപിയുവിനെ ഭ്രാന്തമായി തിന്നുതീർത്തു, സെർവർ ക്രാഷ് ആയി!

സെർവർ പുനരുജ്ജീവിപ്പിക്കുന്നതിനായി, ഞാൻ നിരവധി ഒപ്റ്റിമൈസേഷൻ രീതികൾ പരീക്ഷിച്ചു, ഒടുവിൽ CPU ഉപയോഗം കുറയ്ക്കുന്നതിൽ വിജയിച്ചു.

ഇനി, ഈ കാര്യക്ഷമമായ ഒപ്റ്റിമൈസേഷൻ ഗൈഡ് പങ്കുവെക്കാം ! 🚀

1. php-fpm പ്രക്രിയകളുടെ എണ്ണം പരിമിതപ്പെടുത്തുക

php-fpm-നുള്ള ഡിഫോൾട്ട് ക്രമീകരണങ്ങൾ പരിധിയില്ലാത്ത പ്രക്രിയകൾ സൃഷ്ടിച്ചേക്കാം, ഇത് സെർവർ CPU ഓവർലോഡിന് കാരണമാകും.

ഇത് ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിന്, നമുക്ക് പ്രോസസ്സ് മാനേജ്മെന്റ് പാരാമീറ്ററുകൾ പരിഷ്കരിക്കാൻ കഴിയും.

ഓൺ ചെയ്യുക php-fpm കോൺഫിഗറേഷൻ ഫയലുകൾ:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *PHP8.3 പോലുള്ള നിങ്ങളുടെ PHP പതിപ്പിലേക്ക് മാറ്റുക, തുടർന്ന് ഇത് ഇങ്ങനെ മാറ്റുക:/etc/php/8.3/fpm/pool.d/www.conf

HestiaCP സജ്ജമാക്കിയ PHP പതിപ്പ് അന്വേഷിക്കുക.

v-list-web-domain user domain.com

ഉദാ:

v-list-web-domain abc chenweiliang.com

ഔട്ട്പുട്ടിൽ, നിങ്ങൾ ഇതുപോലൊന്ന് കാണും:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

ഇത് വെബ്സൈറ്റ് PHP 8.3 ഉപയോഗിക്കുന്നുണ്ടെന്ന് സൂചിപ്പിക്കുന്നു.

ഇനിപ്പറയുന്ന പാരാമീറ്ററുകൾ കണ്ടെത്തി പരിഷ്കരിക്കുക:

pm = dynamic
pm.max_children = 16  ; 根据服务器资源调整,建议值:CPU 核心数 × 2
pm.start_servers = 4   ; 初始进程数,建议设为 max_children × 25%
pm.min_spare_servers = 2  ; 最小空闲进程数
pm.max_spare_servers = 7  ; 最大空闲进程数
pm.max_requests = 3000    ; 每个子进程处理完 3000 个请求后自动重启
pm.process_idle_timeout = 10s  ; 空闲进程 10s 后自动退出

തുടർന്ന് റീബൂട്ട് ചെയ്യുക php-fpm ഇത് ഫലപ്രദമാക്കാൻ:

sudo systemctl restart php-fpm

✅പ്രഭാവം : php-fpm അമിതമായി CPU ഉറവിടങ്ങൾ ഉപയോഗിക്കുന്നത് തടയുന്നതിന് പ്രക്രിയകളുടെ എണ്ണം പരിമിതപ്പെടുത്തുന്നു.

2. OPCache പ്രാപ്തമാക്കുക (PHP പ്രകടനം മെച്ചപ്പെടുത്താൻ)

ഓരോ തവണയും കോഡ് എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ PHP അത് റീപാഴ്‌സ് ചെയ്യുന്നു, ഇത് വിഭവങ്ങളുടെ പാഴാക്കലാണ്.
പരിഹാരം? OPCache പ്രാപ്തമാക്കി നിങ്ങളുടെ PHP കോഡ് കാഷെ ചെയ്യുക!

编辑 php.ini പ്രമാണം:

sudo nano /etc/php/*/fpm/php.ini

ഇനിപ്പറയുന്നവ ചേർക്കുക അല്ലെങ്കിൽ പരിഷ്കരിക്കുക:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0  # 禁用实时检测,提高性能

സേവ് ചെയ്ത ശേഷം, PHP പ്രക്രിയ പുനരാരംഭിക്കുക:

sudo systemctl restart php8.3-fpm

✅പ്രഭാവം : പി‌എച്ച്പി കോഡിന്റെ ആവർത്തിച്ചുള്ള പാഴ്‌സിംഗ് കുറയ്ക്കുന്നു, സിപിയു ലോഡ് കുറയ്ക്കുന്നു , നിർവ്വഹണ കാര്യക്ഷമത മെച്ചപ്പെടുത്തുന്നു.

3. PHP സ്ക്രിപ്റ്റുകളുടെ പരമാവധി എക്സിക്യൂഷൻ സമയം പരിമിതപ്പെടുത്തുക.

ഒരു PHP സ്ക്രിപ്റ്റ് വളരെ നേരം പ്രവർത്തിച്ചാൽ, CPU ഉറവിടങ്ങൾ തുടർച്ചയായി കൈവശപ്പെടുത്തപ്പെടും.
ന്യായമായ ഒരു സമയപരിധി നിശ്ചയിക്കുന്നത് "ശാഠ്യമുള്ള" പ്രക്രിയകൾ സെർവറിൽ ദീർഘനേരം നിലനിൽക്കുന്നതിൽ നിന്ന് തടയും.

ഓൺ ചെയ്യുക php.ini പ്രമാണം:

sudo nano /etc/php/*/fpm/php.ini

ഇനിപ്പറയുന്ന പാരാമീറ്ററുകൾ പരിഷ്ക്കരിക്കുക:

max_execution_time = 30  # PHP 脚本最多执行 30max_input_time = 30  # 处理输入数据最多 30memory_limit = 256M  # 限制单个 PHP 进程的内存占用

തുടർന്ന് PHP പ്രക്രിയ പുനരാരംഭിക്കുക:

sudo systemctl restart php-fpm

✅പ്രഭാവം : പി‌എച്ച്പി പ്രക്രിയകൾ ദീർഘനേരം പ്രവർത്തിക്കുന്നത് തടയുന്നു, സിപിയു റിസോഴ്‌സ് പാഴാക്കുന്നത് കുറയ്ക്കുന്നു.

4. പരിശോധിക്കുക MySQL മന്ദഗതിയിലുള്ള അന്വേഷണം

PHP-FPM ന് ഉയർന്ന ലോഡ് ഉണ്ട്,ഇത് മന്ദഗതിയിലുള്ള SQL ക്വറി മൂലമാകാം!
ഓൺ ചെയ്യുക MySQL മന്ദഗതിയിലുള്ള അന്വേഷണ ലോഗ്, തടഞ്ഞുനിർത്തുന്ന SQL പ്രസ്താവനകൾ കണ്ടെത്തുക.

MySQL കോൺഫിഗറേഷൻ ഫയൽ എഡിറ്റ് ചെയ്യുക:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

ഇതിലേക്ക് ചേർക്കുക:

slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1  # 超过 1 秒的查询会被记录

സേവ് ചെയ്ത ശേഷം, MySQL പുനരാരംഭിക്കുക:

sudo systemctl restart mysql

പിന്നെ ഉപയോഗിക്കുക mysqldumpslow മന്ദഗതിയിലുള്ള ചോദ്യങ്ങൾ വിശകലനം ചെയ്യുക:

mysqldumpslow -s c -t 10 /var/log/mysql-slow.log

✅ഫലം : സമയമെടുക്കുന്ന SQL അന്വേഷണങ്ങൾ തിരിച്ചറിയുക, ഡാറ്റാബേസ് പ്രകടനം ഒപ്റ്റിമൈസ് ചെയ്യുക , പരോക്ഷമായി PHP ലോഡ് കുറയ്ക്കുക.

5. നിയന്ത്രണങ്ങൾ മെമ്മാച്ച് ചെയ്തു വിഭവ ഉപയോഗം

പ്രോസസ് ലിസ്റ്റ് നോക്കിയപ്പോൾ, ഞാൻ കണ്ടെത്തി മെംകാഷ്ഡ് പ്രോസസ് സിപിയു ഉപയോഗം 24.8% ആണ്!
കാഷെ അലോക്കേഷൻ വളരെ വലുതായതിനാൽ സിപിയുവിന് വലിയ അളവിൽ ഡാറ്റ പ്രോസസ്സ് ചെയ്യേണ്ടി വന്നേക്കാം.

ക്രമീകരണം memcached കോൺഫിഗറേഷൻ:

sudo nano /etc/memcached.conf

പരിഷ്കരിക്കുക:

-m 32  # 限制 Memcached 内存使用 32MB

തുടർന്ന് റീബൂട്ട് ചെയ്യുക:

sudo systemctl restart memcached

✅പ്രഭാവം : മെംകാഷ്ഡ് പ്രക്രിയയിലെ സിപിയു ലോഡ് കുറയ്ക്കുകയും കാഷിംഗ് കാര്യക്ഷമത മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നു.

6. സ്റ്റാറ്റിക് റിസോഴ്‌സുകൾ കാഷെ ചെയ്യാൻ Nginx പ്രവർത്തനക്ഷമമാക്കുക

പലപ്പോഴും, PHP ധാരാളം അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യുന്നു, അതിൽ ധാരാളം സിഎസ്എസ്, ജെഎസ്, ഇമേജുകൾ, പക്ഷേ ഈ ഫയലുകൾക്ക് PHP പാഴ്‌സിംഗ് ആവശ്യമില്ല!
പരിഹാരം? സ്റ്റാറ്റിക് ഉറവിടങ്ങൾ കാഷെ ചെയ്യാൻ Nginx ഉപയോഗിക്കുക!

Nginx കോൺഫിഗറേഷൻ എഡിറ്റ് ചെയ്യുക:

sudo nano /etc/nginx/nginx.conf

ഇതിലേക്ക് ചേർക്കുക:

location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
    expires max;
    log_not_found off;
}

സംരക്ഷിച്ചതിനുശേഷം, Nginx പുനരാരംഭിക്കുക:

sudo systemctl restart nginx

✅പ്രഭാവം : പി‌എച്ച്പി സ്റ്റാറ്റിക് ഫയലുകൾ പ്രോസസ്സ് ചെയ്യുന്നതിന്റെ എണ്ണം കുറയ്ക്കുന്നു, അങ്ങനെ സിപിയു ഉപയോഗം കുറയ്ക്കുന്നു.

7. ഏറ്റവും കൂടുതൽ CPU ഉപയോഗിക്കുന്ന PHP സ്ക്രിപ്റ്റ് കണ്ടെത്തുക.

ഒപ്റ്റിമൈസേഷനു ശേഷവും സിപിയു വളരെ ഉയർന്നതാണെങ്കിൽ, ചില പിഎച്ച്പി സ്ക്രിപ്റ്റുകൾ അമിതമായി പ്രവർത്തിക്കുന്നുണ്ടാകാം.
ഏറ്റവും കൂടുതൽ CPU ഉപയോഗമുള്ള PHP പ്രക്രിയ കണ്ടെത്താൻ താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക:

ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php

ഒരു PHP സ്ക്രിപ്റ്റ് വളരെയധികം CPU എടുക്കുന്നതായി നിങ്ങൾ കണ്ടെത്തിയാൽ, നിങ്ങൾക്ക് അത് നേരിട്ട് ഇല്ലാതാക്കാൻ കഴിയും:

kill -9 PID

✅ഫലം : "മോശം ആപ്പിളുകളെ" കൃത്യമായി തിരിച്ചറിയുകയും PHP പ്രക്രിയകൾ ദീർഘകാലത്തേക്ക് CPU കൈവശപ്പെടുത്തുന്നത് തടയുകയും ചെയ്യുന്നു.

സംഗ്രഹം: PHP-FPM ഒപ്റ്റിമൈസ് ചെയ്യാനുള്ള 7 വഴികൾ

PHP-FPM പ്രക്രിയകളുടെ എണ്ണം പരിമിതപ്പെടുത്തുക, സിപിയു ഓവർലോഡ് തടയാൻ
OPCache പ്രാപ്തമാക്കുക, PHP കോഡിന്റെ ആവർത്തിച്ചുള്ള പാഴ്‌സിംഗ് കുറയ്ക്കുക
PHP ടൈംഔട്ട് സജ്ജീകരിക്കുന്നു, ദീർഘകാല പ്രവർത്തനം തടയാൻ
MySQL സ്ലോ ക്വറികൾ പരിശോധിക്കുന്നു, ഡാറ്റാബേസ് അന്വേഷണ പ്രകടനം ഒപ്റ്റിമൈസ് ചെയ്യുക
മെംകാഷ്ഡ് മെമ്മറി ക്രമീകരിക്കുക, സിപിയു ഭാരം കുറയ്ക്കുന്നു
Nginx സ്റ്റാറ്റിക് കാഷെ പ്രാപ്തമാക്കുക, PHP പാഴ്‌സിംഗ് ഭാരം കുറയ്ക്കുന്നു
ഉയർന്ന CPU ഉപയോഗമുള്ള PHP സ്ക്രിപ്റ്റുകൾ കണ്ടെത്തുക., കൃത്യമായ ഒപ്റ്റിമൈസേഷൻ

ഉപസംഹാരം

സെർവർ ഒപ്റ്റിമൈസേഷൻ ഫിറ്റ്നസ് പോലെയാണ്, നിങ്ങൾ കൃത്യമായ ക്രമീകരണങ്ങൾ വരുത്തേണ്ടതുണ്ട്, കുഴപ്പത്തിലാക്കരുത്!
നിരവധി ഒപ്റ്റിമൈസേഷനുകൾക്ക് ശേഷം, എന്റെ സെർവർ സിപിയു ലോഡ് കുറഞ്ഞു 80% മുതൽ 15% വരെ, വെബ്സൈറ്റ് ഇരട്ടി വേഗത്തിൽ തുറക്കുന്നു!
നിങ്ങളുടെ സെർവറിനും സമാനമായ പ്രശ്നങ്ങൾ ഉണ്ടെങ്കിൽ, ഈ രീതികൾ പരീക്ഷിച്ചു നോക്കൂ! 💪 മ്യൂസിക്

👉ഇപ്പോൾ തന്നെ നടപടിയെടുക്കൂ! നിങ്ങളുടെ PHP-FPM ഒപ്റ്റിമൈസ് ചെയ്ത് സെർവർ സേവ് ചെയ്യൂ! 🚀

ചെൻ വെയ്‌ലിയാങ്ങിന്റെ ബ്ലോഗിൽ ( https://www.chenweiliang.com/ ) പങ്കിട്ട "HestiaCP php-fpm പ്രോസസ്സ് ധാരാളം CPU ഉറവിടങ്ങൾ ഉപയോഗിക്കുന്നു, അത് എങ്ങനെ ഒപ്റ്റിമൈസ് ചെയ്യാം?" എന്ന ലേഖനം നിങ്ങൾക്ക് സഹായകരമാകുമെന്ന് പ്രതീക്ഷിക്കുന്നു.

ഈ ലേഖനത്തിന്റെ ലിങ്ക് പങ്കിടാൻ മടിക്കേണ്ടതില്ല: https://www.chenweiliang.com/cwl-32490.html

കൂടുതൽ മറഞ്ഞിരിക്കുന്ന തന്ത്രങ്ങൾ അൺലോക്ക് ചെയ്യാൻ🔑, ഞങ്ങളുടെ ടെലിഗ്രാം ചാനലിൽ ചേരാൻ സ്വാഗതം!

ഇഷ്ടമായാൽ ഷെയർ ചെയ്യുക, ലൈക്ക് ചെയ്യുക! നിങ്ങളുടെ ഷെയറുകളും ലൈക്കുകളും ഞങ്ങളുടെ തുടർച്ചയായ പ്രചോദനമാണ്!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

ടോപ്പ് സ്ക്രോൾ