ആർട്ടിക്കിൾ ഡയറക്ടറി
HestiaCP കസ്റ്റം PHP-FPM ടെംപ്ലേറ്റ് പ്രാക്ടീസ്: PHP 8.5 ഉദാഹരണമായി എടുക്കുന്നു
സെർവർ ട്രാഫിക് കുതിച്ചുയരുമ്പോൾ, ഒരു പേപ്പർ ഫയർവാൾ പോലെ, ഡിഫോൾട്ട് PHP-FPM ടെംപ്ലേറ്റ് തൽക്ഷണം കത്തിച്ചുകളയുകയും പ്രകടനം തകരുകയും ചെയ്യും.
അതുകൊണ്ടാണ് ഞാൻ നിങ്ങളോട് പറയുന്നത്: ഇഷ്ടാനുസൃത ടെംപ്ലേറ്റുകൾ ഒരു ഓപ്ഷനല്ല, മറിച്ച് ജീവിതത്തിന്റെയും മരണത്തിന്റെയും കാര്യമാണ്.
എന്തിനാണ് ഒരു ഇഷ്ടാനുസൃത ടെംപ്ലേറ്റ് ഉപയോഗിക്കുന്നത്?
HestiaCP-യിൽ, സിസ്റ്റം അപ്ഡേറ്റുകൾ ഉപയോഗിച്ച് ഡിഫോൾട്ട് ടെംപ്ലേറ്റ് ഓവർറൈറ്റ് ചെയ്യപ്പെടും.
ഇതിനർത്ഥം നിങ്ങൾ കഷ്ടപ്പെട്ട് ക്രമീകരിച്ച പാരാമീറ്ററുകൾ ഒരു അപ്ഡേറ്റിന് ശേഷം തൽക്ഷണം അപ്രത്യക്ഷമായേക്കാം എന്നാണ്.
ഔദ്യോഗിക PHP ഡോക്യുമെന്റേഷൻ പ്രകാരം,pm.max_children ഈ പാരാമീറ്ററുകൾ കൺകറൻസി ശേഷികളെ നേരിട്ട് നിർണ്ണയിക്കുന്നു; ഒരിക്കൽ പുനഃസജ്ജീകരിച്ചാൽ, വെബ്സൈറ്റ് പ്രകടനം ഗണ്യമായി കുറയും.
അതിനാൽ, സ്ഥിരസ്ഥിതി ടെംപ്ലേറ്റ് പകർത്തി പുതിയൊരെണ്ണം സൃഷ്ടിക്കുക. custom-PHP8_5.tplസ്ഥിരത ഉറപ്പാക്കാനുള്ള ഏക മാർഗം പാനലിൽ അത് തിരഞ്ഞെടുക്കുക എന്നതാണ്.

പ്രക്രിയ മാനേജ്മെന്റിന്റെ പ്രധാന യുക്തി
ഡൈനാമിക് മോഡിന്റെ ഗുണങ്ങൾ
pm = dynamic ഉയർന്ന കൺകറൻസി സാഹചര്യങ്ങൾക്കുള്ള ആദ്യ ചോയിസാണിത്.
വിഭവങ്ങൾ പാഴാക്കുന്നത് ഒഴിവാക്കാൻ ലോഡിനെ അടിസ്ഥാനമാക്കി ഇത് പ്രക്രിയകളുടെ എണ്ണം യാന്ത്രികമായി ക്രമീകരിക്കുന്നു.
12GB മെമ്മറിയും 8-കോർ സിപിയുവുമുള്ള ഒരു സെർവറിൽ , ഒരു നിശ്ചിത മൂല്യത്തിൽ കുടുങ്ങുന്നതിനുപകരം, പീക്ക് പീരീഡുകളിൽ സിസ്റ്റത്തെ സ്ഥിരതയോടെ നിലനിർത്താൻ ഡൈനാമിക് മോഡ് അനുവദിക്കുന്നു.
പ്രോസസ് നമ്പർ നിയന്ത്രണത്തിന്റെ ഫൈൻ-ട്യൂണിംഗ്
ചൈൽഡ് പ്രോസസുകളുടെ പരമാവധി എണ്ണം
pm.max_children = 300
ഈ നമ്പർ ആകസ്മികമായി തിരഞ്ഞെടുത്തതല്ല.
Nginx + PHP-FPM പ്രകടന പരിശോധന റിപ്പോർട്ട് അനുസരിച്ച്, ഒരൊറ്റ PHP പ്രക്രിയ ഏകദേശം 30–40MB മെമ്മറി ഉപയോഗിക്കുന്നു.
12GB മെമ്മറി പരിതസ്ഥിതിയിൽ, 300 പ്രോസസ്സുകൾ ഏകദേശം 9GB എടുക്കും, ഇത് സിസ്റ്റത്തിനും ഡാറ്റാബേസിനും മതിയായ ഇടം നൽകും, അത് ശരിയാണ്.
ആരംഭിച്ച പ്രക്രിയകളുടെ എണ്ണം
pm.start_servers = 32
വെബ്സൈറ്റ് ആരംഭിക്കുമ്പോൾ അഭ്യർത്ഥനകൾ കൈകാര്യം ചെയ്യുന്നതിന് ആവശ്യമായ പ്രക്രിയകൾ വെബ്സൈറ്റിനുണ്ടെന്ന് ഇത് ഉറപ്പാക്കുന്നു, കോൾഡ് സ്റ്റാർട്ടുകളിൽ കാലതാമസം തടയുന്നു.
നിഷ്ക്രിയ പ്രക്രിയ നിയന്ത്രണം
pm.min_spare_servers = 16pm.max_spare_servers = 64
ഈ രണ്ട് പാരാമീറ്ററുകളും "ഗോൾകീപ്പർമാർ" പോലെ പ്രവർത്തിക്കുന്നു, വിഭവങ്ങൾ പാഴാക്കാതെ മതിയായ ബാക്കപ്പ് പ്രക്രിയകൾ ഉണ്ടെന്ന് ഉറപ്പാക്കുന്നു.
നിയന്ത്രണവും സ്ഥിരതയും അഭ്യർത്ഥിക്കുക
പരമാവധി അഭ്യർത്ഥനകളുടെ എണ്ണം
pm.max_requests = 1000
മെമ്മറി ചോർച്ച ഒഴിവാക്കാൻ 1000 അഭ്യർത്ഥനകൾ കൈകാര്യം ചെയ്ത ശേഷം ഓരോ പ്രക്രിയയും യാന്ത്രികമായി പുനരാരംഭിക്കുന്നു.
ഇത് PHP-യിൽ ശുപാർശ ചെയ്യുന്ന ഔദ്യോഗിക രീതിയാണ്, ദീർഘകാല പ്രവർത്തനം മൂലമുണ്ടാകുന്ന പ്രകടനത്തിലെ ഇടിവ് ഫലപ്രദമായി തടയാൻ ഇതിന് കഴിയും.
അഭ്യർത്ഥന കാലഹരണപ്പെട്ടു
request_terminate_timeout = 60s
60 സെക്കൻഡിൽ കൂടുതലുള്ള അഭ്യർത്ഥനകൾ നിർബന്ധിതമായി അവസാനിപ്പിക്കും.
മുഴുവൻ സെർവറും തകരാറിലാകുന്നത് തടയാൻ സിസ്റ്റത്തിൽ ഒരു ഇൻഷുറൻസ് പാളി ചേർക്കുന്നത് പോലെയാണിത്.
പ്രകടന നിരീക്ഷണത്തിന്റെ പ്രായോഗിക പ്രയോഗം
മന്ദഗതിയിലുള്ള ലോഗ് റെക്കോർഡിംഗ്
slowlog = /var/log/php8.5-fpm-%domain%.slow.log
5 സെക്കൻഡിൽ കൂടുതൽ എടുക്കുന്ന ഏതൊരു അഭ്യർത്ഥനയും ലോഗ് ചെയ്യപ്പെടും.
ഇത് അന്ധമായി ഊഹിക്കുന്നതിനുപകരം, പ്രകടനത്തിലെ തടസ്സങ്ങൾ കൃത്യമായി ചൂണ്ടിക്കാണിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു .
മന്ദഗതിയിലുള്ള അഭ്യർത്ഥന സമയപരിധി കഴിഞ്ഞു
request_slowlog_timeout = 5s
സമയം 5 സെക്കൻഡ് കവിയുന്നുവെങ്കിൽ സ്ലോ ലോഗുകൾ പ്രവർത്തനക്ഷമമാകും, ഇത് പ്രശ്നങ്ങൾ വേഗത്തിൽ തിരിച്ചറിയാൻ നിങ്ങളെ സഹായിക്കുന്നു.
സുരക്ഷയുടെയും ഒറ്റപ്പെടലിന്റെയും ആവശ്യകത
ഡയറക്ടറി നിയന്ത്രണങ്ങൾ
php_admin_value[open_basedir]
ഇത് PHP സ്ക്രിപ്റ്റുകളെ നിർദ്ദിഷ്ട ഡയറക്ടറികളിലേക്ക് മാത്രം ആക്സസ് ചെയ്യാൻ നിയന്ത്രിക്കുന്നു, ഇത് ക്രോസ്-സൈറ്റ് ആക്സസ് തടയുന്നു.
ഒരു സൈറ്റിലെ ഒരു ദുർബലത മറ്റ് സൈറ്റുകളെ ബാധിക്കാതിരിക്കാൻ, ഒന്നിലധികം സൈറ്റുകളുള്ള ഒരു പരിതസ്ഥിതിയിൽ ഇത് പ്രത്യേകിച്ചും പ്രധാനമാണ്.
താൽക്കാലിക ഫയലുകളും സെഷൻ ഐസൊലേഷനും
php_admin_value[session.save_path] എതിരായി upload_tmp_dir
സുരക്ഷ മെച്ചപ്പെടുത്തുന്നതിനായി താൽക്കാലിക ഫയലുകളും സെഷനുകളും ഉപയോക്തൃ ഡയറക്ടറിയിൽ സൂക്ഷിക്കുക.
പരസ്പരം ഇടപെടാതിരിക്കാൻ ഓരോ സ്ഥലത്തിനും ഒരു സ്വതന്ത്ര സേഫ് സ്ഥാപിക്കുന്നത് പോലെയാണിത്.
ഒരു ഇഷ്ടാനുസൃത ടെംപ്ലേറ്റ് എങ്ങനെ പ്രയോഗിക്കാം
HestiaCP-യിലെ ഡിഫോൾട്ട് സിസ്റ്റത്തിനായി PHP-യുടെ ഏറ്റവും പുതിയ പതിപ്പ് തിരഞ്ഞെടുക്കാൻ ശുപാർശ ചെയ്യുന്നു. ഒരു ഓട്ടോമാറ്റിക് അപ്ഡേറ്റിന് ശേഷം സിസ്റ്റം യാന്ത്രികമായി ഒരു പഴയ പതിപ്പ് തിരഞ്ഞെടുക്കുന്നത് ഒഴിവാക്കുന്നതിനാണിത്.
ലോഗിൻ പാനൽ → മുകളിൽ വലത് കോണിലുള്ള ഗിയർ ഐക്കൺ → സെർവർ കോൺഫിഗർ ചെയ്യുക → സിസ്റ്റം PHP പതിപ്പ് (ഏറ്റവും പുതിയ പതിപ്പ് ശുപാർശ ചെയ്യുന്നു)
ഡിഫോൾട്ട് ടെംപ്ലേറ്റ് പകർത്താനുള്ള കമാൻഡ്:
cp /usr/local/hestia/data/templates/web/php-fpm/default.tpl \ /usr/local/hestia/data/templates/web/php-fpm/custom-default-PHP.tpl cp /usr/local/hestia/data/templates/web/php-fpm/PHP-8_5.tpl \ /usr/local/hestia/data/templates/web/php-fpm/custom-PHP8_5.tpl cp /usr/local/hestia/data/templates/web/php-fpm/PHP-8_4.tpl \ /usr/local/hestia/data/templates/web/php-fpm/custom-PHP8_4.tpl
കോൺഫിഗറേഷൻ പാരാമീറ്ററുകൾ പരിഷ്കരിക്കുക
സെർവർ ഉറവിടങ്ങളും ആവശ്യങ്ങളും അനുസരിച്ച് ക്രമീകരിക്കുക. pm.max_children,request_terminate_timeout 等
pm = dynamic ; 允许的最大 PHP 进程数(12GB 内存 / 40MB ≈ 300) ; 8核CPU搭配300个进程,可以轻松应对极高并发,且不至于让内存溢出 pm.max_children = 300 ; 启动时创建的初始进程数(CPU核心数 * 4) pm.start_servers = 32 ; 维持的最小空闲进程数(服务器空闲时保留的进程,保证随时响应) pm.min_spare_servers = 16 ; 维持的最大空闲进程数(超过这个数量的空闲进程会被释放) pm.max_spare_servers = 64 ; 每个进程处理1000个请求后自动重启,高配置服务器可适当调大,有效防止WP插件内存泄露 pm.max_requests = 1000 ; 单个请求最大执行时间,超时60秒强杀,防止死锁卡死 request_terminate_timeout = 60s ; 慢日志路径及触发阈值(请求超过5秒则记录,用于排查性能瓶颈) slowlog = /var/log/php8.5-fpm.log.slow request_slowlog_timeout = 5s
HestiaCP പാനലിൽ നിന്ന് ഒരു ടെംപ്ലേറ്റ് തിരഞ്ഞെടുക്കുക.
ലോഗിൻ പാനൽ → വെബ് → ഡൊമെയ്ൻ എഡിറ്റ് ചെയ്യുക → PHP-FPM ടെംപ്ലേറ്റ് → തിരഞ്ഞെടുക്കുക custom-PHP8_5.tpl
സംരക്ഷിച്ച് പ്രയോഗിക്കുക
സിസ്റ്റം ഉടൻ തന്നെ പുതിയ ടെംപ്ലേറ്റ് കോൺഫിഗറേഷൻ ലോഡ് ചെയ്യും.
പ്രായോഗികമായി സംഭവിക്കുന്ന യഥാർത്ഥ കേസുകൾ
ഒരേസമയം 5000 ഉപയോക്താക്കളുടെ പീക്ക് ട്രാഫിക് ഉള്ള ഒരു സെർവറിൽ ഞാൻ ഇത് ഒരിക്കൽ പരീക്ഷിച്ചു.
ഡിഫോൾട്ട് ടെംപ്ലേറ്റ് ഉപയോഗിക്കുമ്പോൾ, പ്രതികരണ സമയം 3.2 സെക്കൻഡായി വർദ്ധിച്ചു.
ഇതിലേക്ക് മാറുക custom-PHP8_5.tpl അതിനുശേഷം, പ്രതികരണ സമയം സ്ഥിരമായി 0.8 സെക്കൻഡ്.
ഇതാണ് ഇഷ്ടാനുസൃത ടെംപ്ലേറ്റുകളുടെ ശക്തി.
ഉപസംഹാരം: എന്റെ കാഴ്ചപ്പാട്
സെർവർ ഒപ്റ്റിമൈസേഷന്റെ ലോകത്ത്, ടെംപ്ലേറ്റുകളാണ് അടിസ്ഥാന ക്രമം.
നിങ്ങൾ ഇപ്പോഴും ഡിഫോൾട്ട് ടെംപ്ലേറ്റിനെയാണ് ആശ്രയിക്കുന്നതെങ്കിൽ, അത് ഒരു പുതുമുഖ ഡ്രൈവർക്ക് ഒരു ആഡംബര കാർ കൈമാറുന്നത് പോലെയാണ് - കാർ എളുപ്പത്തിൽ അപകടത്തിൽപ്പെടാം.
യഥാർത്ഥ വിദഗ്ധർക്ക് സ്ഥിരത ഉറപ്പാക്കാൻ ഇഷ്ടാനുസൃത ടെംപ്ലേറ്റുകൾ എങ്ങനെ ഉപയോഗിക്കാമെന്നും പ്രകടനം മെച്ചപ്പെടുത്താൻ പാരാമീറ്റർ ഒപ്റ്റിമൈസേഷൻ എങ്ങനെ ഉപയോഗിക്കാമെന്നും അറിയാം.
കോൺഫിഗറേഷൻ ഒരു വിശദാംശമല്ല, മറിച്ച് ജീവിതമോ മരണമോ നിർണ്ണയിക്കുന്ന ഒരു തന്ത്രമാണ്.
അതുകൊണ്ട് നമുക്ക് നടപടിയെടുക്കാം.
ടെംപ്ലേറ്റ് പകർത്തുക, പാരാമീറ്ററുകൾ പരിഷ്കരിക്കുക, തിരഞ്ഞെടുക്കുക... custom-PHP8_5.tpl.
ശക്തമായ കൺകറൻസികൾ ഉണ്ടെങ്കിലും നിങ്ങളുടെ സെർവർ ഉറച്ചതായി നിലനിർത്തുക.
📖 വായന തുടരാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു.
PHP-FPM ടെംപ്ലേറ്റുകൾ എങ്ങനെ ഇഷ്ടാനുസൃതമാക്കാമെന്ന് നിങ്ങൾ ഇതിനകം പഠിച്ചിട്ടുണ്ടെങ്കിൽ , അടുത്ത നിർണായക ഘട്ടം ടെംപ്ലേറ്റ് പാരാമീറ്റർ ഒപ്റ്റിമൈസേഷനെയും ലോഡ് പ്രശ്നങ്ങളെയും കുറിച്ച് ആഴത്തിലുള്ള ധാരണ നേടുക എന്നതാണ്.
👉 HestiaCP PHP-FPM ഓവർലോഡ് ആണോ? ഡൈനാമിക് വെബ് പേജുകൾക്ക് 500 പിശകുകൾ വരുന്നുണ്ടോ? ഈ ഒപ്റ്റിമൈസേഷൻ ഉടനടി ഫലങ്ങൾ കാണിക്കും! ▼
ഈ ലേഖനത്തിൽ, നിങ്ങൾ കാണും:
- പാരാമീറ്റർ കോൺഫിഗറേഷൻ നുറുങ്ങുകൾസൈറ്റ് ട്രാഫിക്കിനെ അടിസ്ഥാനമാക്കി പ്രോസസ്സുകളുടെ എണ്ണവും മെമ്മറി പരിധികളും എങ്ങനെ ന്യായമായി സജ്ജീകരിക്കാം.
- ലോഡ് ഒപ്റ്റിമൈസേഷൻ പരിഹാരംഉയർന്ന കൺകറൻസിയിൽ 500 പിശകുകൾ ഒഴിവാക്കുന്നതിനും ഡൈനാമിക് വെബ് പേജുകളുടെ സ്ഥിരമായ പ്രവർത്തനം ഉറപ്പാക്കുന്നതിനും.
- യഥാർത്ഥ കേസ് വിശകലനംയഥാർത്ഥ ലോക സാഹചര്യങ്ങളിലെ കോൺഫിഗറേഷനുകൾ താരതമ്യം ചെയ്യുന്നതിലൂടെ, ഒപ്റ്റിമൈസേഷൻ ഇഫക്റ്റുകൾ നമുക്ക് അവബോധപൂർവ്വം മനസ്സിലാക്കാൻ കഴിയും.
ചുരുക്കത്തിൽ: പാരാമീറ്റർ ഒപ്റ്റിമൈസേഷൻ സ്ഥിരതയുടെ ഉറപ്പ് ആണ്, ഉയർന്ന മർദ്ദമുള്ള അന്തരീക്ഷത്തിൽ നിങ്ങളുടെ സെർവറിന് ശേഷി നിലനിർത്താൻ ഇത് അനുവദിക്കുന്നു.
ചെൻ വെയ്ലിയാങ്ങിന്റെ ബ്ലോഗിൽ ( https://www.chenweiliang.com/ ) പങ്കിട്ട "HestiaCP കസ്റ്റം PHP-FPM ടെംപ്ലേറ്റ്: PHP 8.5 പെർഫോമൻസ് ഒപ്റ്റിമൈസേഷൻ സീക്രട്ട്സ്" എന്ന ലേഖനം നിങ്ങൾക്ക് സഹായകരമാകുമെന്ന് പ്രതീക്ഷിക്കുന്നു.
ഈ ലേഖനത്തിന്റെ ലിങ്ക് പങ്കിടാൻ മടിക്കേണ്ടതില്ല: https://www.chenweiliang.com/cwl-34423.html

