നിങ്ങളുടെ അപ്പാച്ചെ വെബ് സെർവറിന്റെ പ്രകടനം വർദ്ധിപ്പിക്കുന്നതിനുള്ള 5 നുറുങ്ങുകൾ


നെറ്റ്uക്രാഫ്റ്റിന്റെ (മറ്റ് സേവനങ്ങൾക്കിടയിൽ വെബ് ബ്രൗസർ ഉപയോഗ സ്ഥിതിവിവരക്കണക്കുകൾ നൽകുന്ന ഒരു പ്രശസ്ത ഇന്റർനെറ്റ് കമ്പനി) സമീപകാല റിപ്പോർട്ട് അനുസരിച്ച്, സൈറ്റുകളിലും ഇന്റർനെറ്റ് അഭിമുഖീകരിക്കുന്ന കമ്പ്യൂട്ടറുകളിലും ഏറ്റവും വ്യാപകമായി ഉപയോഗിക്കുന്ന വെബ് സെർവറായി അപ്പാച്ചെ തുടരുന്നു.

കൂടാതെ, മുൻനിര വെബ് സെർവറുകളിൽ ഏറ്റവും വലിയ വളർച്ച അപ്പാച്ചെ അനുഭവിച്ചുകൊണ്ടിരിക്കുന്നു, തുടർന്ന് Nginx ഉം IIS ഉം. അതിനാൽ, നിങ്ങൾ അപ്പാച്ചെ ഇൻസ്റ്റാളേഷനുകൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള ചുമതലയുള്ള ഒരു സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററാണെങ്കിൽ, നിങ്ങളുടെ (അല്ലെങ്കിൽ നിങ്ങളുടെ ക്ലയന്റ്) ആവശ്യങ്ങൾക്കനുസരിച്ച് നിങ്ങളുടെ വെബ് സെർവർ അതിന്റെ ശേഷിയുടെ ഏറ്റവും മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കുന്നത് എങ്ങനെയെന്ന് നിങ്ങൾ അറിഞ്ഞിരിക്കണം.

ഈ ലേഖനത്തിൽ, അപ്പാച്ചെ സുഗമമായി പ്രവർത്തിക്കുമെന്നും റിമോട്ട് ക്ലയന്റുകളിൽ നിന്ന് നിങ്ങൾ പ്രതീക്ഷിക്കുന്ന അഭ്യർത്ഥനകളുടെ എണ്ണം കൈകാര്യം ചെയ്യുമെന്നും ഉറപ്പാക്കാൻ നിങ്ങളെ സഹായിക്കുന്ന കുറച്ച് ടിപ്പുകൾ ഞങ്ങൾ ചർച്ച ചെയ്യും.

എന്നിരുന്നാലും, അപ്പാച്ചെ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് ബെഞ്ച്മാർക്ക് റെക്കോർഡുകൾ സജ്ജീകരിക്കുക എന്ന ലക്ഷ്യത്തോടെയല്ല - എന്നിരുന്നാലും, നിങ്ങൾക്ക് ചിന്തിക്കാൻ കഴിയുന്ന ഏത് ഉപയോഗ സാഹചര്യത്തിലും ഉയർന്ന പ്രകടനം നൽകാൻ ഇതിന് ഇപ്പോഴും പ്രാപ്തമാണ്.

നുറുങ്ങ് #1: അപ്പാച്ചെ അതിന്റെ ഏറ്റവും പുതിയ പതിപ്പിലേക്ക് എപ്പോഴും അപ്ഡേറ്റ് ചെയ്യുക

അപ്പാച്ചെയുടെ ഏറ്റവും പുതിയ പതിപ്പ് ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നത് നിങ്ങൾ ആദ്യം പരിഗണിക്കേണ്ട കാര്യങ്ങളിൽ ഒന്നാണെന്ന് പറയാതെ വയ്യ. നവംബർ 19, 2015 വരെ, CentOS 7 റിപ്പോസിറ്ററികളിൽ ലഭ്യമായ Apache-യുടെ ഏറ്റവും പുതിയ പതിപ്പ് 2.4.6 ആണ്, അതേസമയം Debian-ൽ 2.4.10 ആണ്.

എന്നിരുന്നാലും, പുതിയതായി പുറത്തിറക്കിയ സ്ഥിരതയുള്ള പതിപ്പിലേക്ക് ചേർത്തിട്ടുള്ള സമീപകാല മെച്ചപ്പെടുത്തലോ ബഗ് പരിഹാരമോ ഉണ്ടായേക്കാം, അത് ഉറവിടത്തിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യാനും ഇൻസ്റ്റാൾ ചെയ്യാനും ലഭ്യമാക്കും. കംപൈലേഷനും ഇൻസ്റ്റാളേഷൻ നിർദ്ദേശങ്ങളും ഇവിടെ നൽകിയിരിക്കുന്നു - നിങ്ങൾ ഈ അപ്uഡേറ്റ് രീതി തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ, നിങ്ങളുടെ നിലവിലെ കോൺഫിഗറേഷൻ ഫയലുകൾ/സൈറ്റുകൾ/വെർച്വൽ ഹോസ്റ്റുകൾ എന്നിവ മുൻകരുതലായി ബാക്കപ്പ് ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം എന്ന് ഓർക്കുക.

ഏത് സാഹചര്യത്തിലും, നിങ്ങൾക്ക് നിലവിൽ ഇൻസ്റ്റാൾ ചെയ്ത പതിപ്പ് ഇനിപ്പറയുന്ന രീതിയിൽ പരിശോധിക്കാം:

# httpd -v               [On RedHat/CentOS based systems]
# apache2 –v             [On Debian/Ubuntu based systems] 

ഒരു ചട്ടം പോലെ, നിങ്ങൾ തിരഞ്ഞെടുത്ത വിതരണത്തിന്റെ പാക്കേജ് മാനേജർ നൽകുന്ന അപ്uഡേറ്റ് രീതി പിന്തുടരുക (yum update httpd അല്ലെങ്കിൽ aptitude safe-upgrade apache2, CentOS അല്ലെങ്കിൽ Debian, യഥാക്രമം) മറ്റൊരു വഴിയും ഇല്ലെങ്കിൽ. Apache HTTP സെർവർ പ്രൊജക്uറ്റ് വെബ്uസൈറ്റിലെ അപ്പാച്ചെ ഡോക്യുമെന്റേഷൻ വിഭാഗത്തിൽ നിങ്ങൾക്ക് ഏറ്റവും പുതിയ റിലീസ് കുറിപ്പുകൾ വായിക്കാം.

നുറുങ്ങ് #2: നിങ്ങൾ 2.4-നേക്കാൾ പഴയ ഒരു കേർണലാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, ഇപ്പോൾ അപ്ഗ്രേഡ് ചെയ്യുന്നത് പരിഗണിക്കുക

എന്തുകൊണ്ട്? 2.4-ഉം അതിനുമുകളിലുള്ളതുമായ കേർണൽ പതിപ്പുകൾ ഡിഫോൾട്ടായി സെൻഡ്ഫയൽ കേർണൽ സിസ്റ്റം കോൾ പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുന്നു. അതാകട്ടെ, ഉയർന്ന പ്രകടനമുള്ള നെറ്റ്uവർക്ക് ഫയൽ കൈമാറ്റം സുഗമമാക്കുകയും (വെബ് സെർവർ-ക്ലയന്റ് ആശയവിനിമയങ്ങളുടെ പശ്ചാത്തലത്തിൽ ആവശ്യമുള്ളത്) ഒപ്പം ഒരേസമയം റീഡ് ആൻഡ് അയയ്uക്കൽ പ്രവർത്തനങ്ങൾ നടത്തി സ്റ്റാറ്റിക് ഉള്ളടക്കം വേഗത്തിലും കുറഞ്ഞ സിപിയു ഉപയോഗത്തിലും നൽകാൻ അപ്പാച്ചെയെ പ്രാപ്uതമാക്കുന്നു.

നിങ്ങൾക്ക് നിലവിൽ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്ന കേർണൽ ഇതുപയോഗിച്ച് കാണാൻ കഴിയും:

# uname -r

www.kernel.org-ലെ ഏറ്റവും പുതിയ സ്ഥിരതയുള്ള കേർണലുമായി താരതമ്യം ചെയ്യുക (ഇത് എഴുതുന്ന സമയത്ത് 4.3).

തുടക്കക്കാർക്കായി ഉദ്ദേശിക്കാത്ത ഒരു പ്രക്രിയയാണെങ്കിലും, നിങ്ങളുടെ കേർണൽ നവീകരിക്കുന്നത് ലിനക്സിന്റെ ഇന്റേണലുകളെ കുറിച്ച് കൂടുതലറിയാൻ രസകരമായ ഒരു വ്യായാമമാണ്.

നുറുങ്ങ് #3: നിങ്ങളുടെ കാര്യത്തിൽ ഏറ്റവും മികച്ച രീതിയിൽ പ്രവർത്തിക്കുന്ന മൾട്ടി-പ്രോസസിംഗ് മൊഡ്യൂൾ (MPM) തിരഞ്ഞെടുക്കുക

പ്രായോഗികമായി, MPM-കൾ അപ്പാച്ചെയുടെ മോഡുലാർ പ്രവർത്തനം വിപുലീകരിക്കുന്നു, മെഷീനിലെ നെറ്റ്uവർക്ക് പോർട്ടുകളുമായി ബന്ധിപ്പിക്കുന്നതിന് വെബ് സെർവർ എങ്ങനെ കോൺഫിഗർ ചെയ്യണം, ക്ലയന്റുകളിൽ നിന്നുള്ള അഭ്യർത്ഥനകൾ സ്വീകരിക്കുക, അത്തരം അഭ്യർത്ഥനകൾ കൈകാര്യം ചെയ്യുന്നതിന് കുട്ടികളുടെ പ്രോസസ്സുകൾ (ഒപ്പം ത്രെഡുകൾ, പകരം) ഉപയോഗിക്കുക.

പതിപ്പ് 2.4 മുതൽ, നിങ്ങളുടെ ആവശ്യങ്ങൾക്കനുസരിച്ച് തിരഞ്ഞെടുക്കാൻ അപ്പാച്ചെ മൂന്ന് വ്യത്യസ്ത MPM-കൾ വാഗ്ദാനം ചെയ്യുന്നു:

  1. prefork MPM ത്രെഡിംഗ് കൂടാതെ ഒന്നിലധികം ചൈൽഡ് പ്രോസസ്സുകൾ ഉപയോഗിക്കുന്നു. ഓരോ പ്രക്രിയയും ഓരോന്നിനും പ്രത്യേകം ത്രെഡുകൾ സൃഷ്ടിക്കാതെ ഒരു സമയം ഒരു കണക്ഷൻ കൈകാര്യം ചെയ്യുന്നു. കൂടുതൽ വിശദാംശങ്ങളിലേക്ക് കടക്കാതെ, ഉപയോഗിക്കുന്ന ഒരു ആപ്ലിക്കേഷൻ ഡീബഗ്ഗ് ചെയ്യുമ്പോൾ മാത്രമേ ഈ MPM ഉപയോഗിക്കാവൂ എന്ന് ഞങ്ങൾക്ക് പറയാൻ കഴിയും, അല്ലെങ്കിൽ mod_php പോലെയുള്ള ത്രെഡ്-സേഫ് അല്ലാത്ത മൊഡ്യൂളുകൾ നിങ്ങളുടെ അപ്ലിക്കേഷന് കൈകാര്യം ചെയ്യേണ്ടതുണ്ടെങ്കിൽ.
  2. വർക്കർ MPM ഓരോ ചൈൽഡ് പ്രോസസ്സുകളിലും നിരവധി ത്രെഡുകൾ ഉപയോഗിക്കുന്നു, ഓരോ ത്രെഡും ഒരു സമയം ഒരു കണക്ഷൻ കൈകാര്യം ചെയ്യുന്നു. ഉയർന്ന ട്രാഫിക്കുള്ള സെർവറുകൾക്ക് ഇത് ഒരു നല്ല തിരഞ്ഞെടുപ്പാണ്, കാരണം മുമ്പത്തേതിനേക്കാൾ കുറഞ്ഞ റാം ഉപയോഗിച്ച് കൂടുതൽ കൺകറന്റ് കണക്ഷനുകൾ കൈകാര്യം ചെയ്യാൻ ഇത് അനുവദിക്കുന്നു.
  3. അവസാനം, 2.4-ഉം അതിനുമുകളിലുള്ള പതിപ്പുകൾക്കുമുള്ള മിക്ക അപ്പാച്ചെ ഇൻസ്റ്റലേഷനുകളിലെയും സ്ഥിരസ്ഥിതി MPM ആണ് event MPM. ഓരോ ചൈൽഡ് പ്രോസസിലും ഒന്നിലധികം ത്രെഡുകൾ സൃഷ്uടിക്കുന്നതിനാൽ ഇത് വർക്കർ എംപിഎമ്മിന് സമാനമാണ്, പക്ഷേ ഒരു നേട്ടമുണ്ട്: ഇത് KeepAlive അല്ലെങ്കിൽ നിഷ്uക്രിയ കണക്ഷനുകൾ (അവ ആ അവസ്ഥയിൽ തുടരുമ്പോൾ) ഒരു ത്രെഡ് കൈകാര്യം ചെയ്യാൻ കാരണമാകുന്നു, അങ്ങനെ മെമ്മറി സ്വതന്ത്രമാക്കുന്നു മറ്റ് ത്രെഡുകളിലേക്ക് അനുവദിക്കും. mod_php പോലുള്ള ത്രെഡ്-സേഫ് അല്ലാത്ത മൊഡ്യൂളുകൾക്കൊപ്പം ഉപയോഗിക്കുന്നതിന് ഈ MPM അനുയോജ്യമല്ല, പകരം അത്തരം ഒരു PHP-FPM ഉപയോഗിക്കേണ്ടതാണ്.

നിങ്ങളുടെ അപ്പാച്ചെ ഇൻസ്റ്റാളേഷൻ ഉപയോഗിക്കുന്ന MPM പരിശോധിക്കാൻ, നിങ്ങൾക്ക് ഇവ ചെയ്യാനാകും:

# httpd -V

ഈ പ്രത്യേക വെബ് സെർവർ പ്രീഫോർക്ക് MPM ഉപയോഗിക്കുന്നതായി ചുവടെയുള്ള ചിത്രം കാണിക്കുന്നു.

ഇത് മാറ്റാൻ, നിങ്ങൾ എഡിറ്റ് ചെയ്യേണ്ടതുണ്ട്:

# /etc/httpd/conf.modules.d/00-mpm.conf          [On RedHat/CentOS based systems]
# /etc/apache2/mods-available/<mpm>.load   [On Debian/Ubuntu based systems]

ഇവിടെ mpm_event, mpm_worker അല്ലെങ്കിൽ mpm_prefork ആകാം.

ആവശ്യമുള്ള മൊഡ്യൂൾ ലോഡ് ചെയ്യുന്ന ലൈൻ ഇതുപോലെ കമന്റ് ചെയ്യുക:

LoadModule mpm_event_module modules/mod_mpm_event.so

കുറിപ്പ്: ഇവന്റ് MPM ഡെബിയനിൽ പ്രവർത്തിക്കുന്നതിന്, നിങ്ങൾ സ്വതന്ത്രമല്ലാത്ത ശേഖരണങ്ങളിൽ നിന്ന് libapache2-mod-fastcgi പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതായി വന്നേക്കാം.

കൂടാതെ, CentOS-ന് നിങ്ങൾക്ക് php-fpm (fcgi, mod_fcgid എന്നിവയ്uക്കൊപ്പം) ആവശ്യമാണ്, അതേസമയം ഡെബിയനിൽ ഇതിനെ php5-fpm (apache2-mpm-event-നൊപ്പം) എന്ന് വിളിക്കുന്നു.

അവസാനമായി, എന്നാൽ ഏറ്റവും കുറഞ്ഞത്, വെബ് സെർവറും പുതുതായി ഇൻസ്റ്റാൾ ചെയ്ത php-fpm (അല്ലെങ്കിൽ php5-fpm) സേവനവും പുനരാരംഭിക്കുക:

# systemctl restart httpd php-fpm && systemctl enable httpd php-fpm
# systemctl restart apache2 php5-fpm && systemctl enable apache2 php5-fpm

ഒരു നിർദ്ദിഷ്uട എംuപിuഎം ഉപയോഗിക്കുന്നതിന് നിങ്ങൾക്ക് അപ്പാച്ചെ സജ്ജീകരിക്കാമെങ്കിലും, നേരത്തെ സൂചിപ്പിച്ച അതേ രീതിയിൽ ഓരോ വെർച്വൽ ഹോസ്റ്റ് അടിസ്ഥാനത്തിൽ ആ കോൺഫിഗറേഷൻ അസാധുവാക്കാനാകും.

ഓരോ വെർച്വൽ ഹോസ്റ്റിനുമുള്ള കോൺഫിഗറേഷൻ ഫയലിലേക്ക് അനുബന്ധ ടാഗുകൾ ഇടുക, നിങ്ങൾ പോകാൻ തയ്യാറാണ് - എന്നാൽ നിങ്ങൾ ഒരു vhost-ന് ഒരു MPM മാത്രമേ ഉപയോഗിക്കുന്നുള്ളൂവെന്ന് ഉറപ്പാക്കുക.

അവസാനമായി, നിങ്ങൾ തിരഞ്ഞെടുത്ത ഡിസ്ട്രിബ്യൂഷൻ പരിഗണിക്കാതെ തന്നെ, php-fpm FastCGI നടപ്പിലാക്കുന്നതിനെ ആശ്രയിക്കുന്നു എന്നത് ദയവായി ശ്രദ്ധിക്കുക, ഇതാണ് അധിക പാക്കേജ് ഇൻസ്റ്റാളേഷനുകൾ ഞാൻ നേരത്തെ ശുപാർശ ചെയ്തതിന്റെ കാരണം.

php-fpm-നെ കുറിച്ചുള്ള കൂടുതൽ വിശദാംശങ്ങൾക്കും ഉദാഹരണങ്ങൾക്കും ഇവന്റ് MPM-നൊപ്പം അപ്പാച്ചെയുടെ പ്രകടനം എങ്ങനെ വർദ്ധിപ്പിക്കാം എന്നതിനെക്കുറിച്ചും, നിങ്ങൾ ഔദ്യോഗിക ഡോക്യുമെന്റേഷൻ നോക്കേണ്ടതാണ്.

മുമ്പത്തെ ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്ന അതേ ബോക്സിൽ ഡിഫോൾട്ട് MPM-നെ prefork-ൽ നിന്ന് ഇവന്റിലേക്ക് മാറ്റിയ ശേഷം ഞാൻ കാണുന്നത് ഇതാണ്:

CentOS 7-ൽ, http, https സേവനങ്ങൾ ഫയർവാളിലൂടെ പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെന്നും നെറ്റ്uവർക്ക് ഇന്റർഫേസ്(കൾ) ഡിഫോൾട്ട് സോണിലേക്ക് ശരിയായി ചേർത്തിട്ടുണ്ടെന്നും നിങ്ങൾ ഉറപ്പാക്കേണ്ടതുണ്ട്.

ഉദാഹരണത്തിന്:

# firewall-cmd --zone=internal --add-interface=tun6to4 
# firewall-cmd --zone=internal --add-interface=tun6to4 --permanent 
# firewall-cmd --set-default-zone=internal 
# firewall-cmd --add-service=http 
# firewall-cmd --add-service=https 
# firewall-cmd --add-service=http --permanent 
# firewall-cmd --add-service=https --permanent 
# firewall-cmd --reload

ഒരു ക്ലൗഡ് വിപിഎസിലെ ഡിഫോൾട്ട് ഫയർവാൾഡ് കോൺഫിഗറേഷൻ ക്രമീകരണങ്ങൾ php-fpm, Apache എന്നിവയെ php ഫയലുകൾ പ്രോസസ്സ് ചെയ്യുന്നതിൽ നിന്ന് തടയുന്ന ഒരു പ്രശ്നം അടുത്തിടെ ഞാൻ നേരിട്ടതിനാലാണ് ഞാൻ ഇത് കൊണ്ടുവരുന്നത്.

ഒരു അടിസ്ഥാന പരിശോധന എന്ന നിലയിൽ (കൂടുതൽ സങ്കീർണ്ണമായതോ സമ്മർദമുള്ളതോ ആയവയെക്കുറിച്ച് നിങ്ങൾക്ക് ചിന്തിക്കാൻ കഴിയുമെന്ന് എനിക്ക് ഉറപ്പുണ്ട്), രണ്ട് CentOS-ന്റെ ഒരേ ഡയറക്ടറിയിൽ test.php എന്ന പേരിലുള്ള മറ്റൊരു ഫയലിന്റെ അസ്തിത്വം പരിശോധിക്കുന്ന ഒരു php ഫയൽ ഞാൻ സൃഷ്ടിക്കും. 7 സെർവറുകൾ ഒരേ ഹാർഡ്uവെയർ സവിശേഷതകളും ലോഡും ഉള്ളതും എന്നാൽ വ്യത്യസ്ത MPM ഉള്ളതും. അവരിൽ ഒരാൾ ഇവന്റ് ഉപയോഗിക്കും, മറ്റൊന്ന് പ്രീഫോർക്ക് ഉപയോഗിക്കും:

checkiffileexists.php എന്ന പേരിലുള്ള ഫയലിൽ ഞാൻ സംരക്ഷിച്ച php കോഡാണിത്:

<?php
$filename = 'test.php';

if (file_exists($filename)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}
?>

തുടർന്ന് 2000 അഭ്യർത്ഥനകൾ പൂർത്തിയാകുന്നത് വരെ ഒരേസമയം 200 അഭ്യർത്ഥനകളുള്ള അപ്പാച്ചെ ബെഞ്ച്മാർക്ക് ടൂൾ (ab) ഞങ്ങൾ പ്രവർത്തിപ്പിക്കും:

# ab -k -c 100 -n 2000 localhost/checkiffileexists.php

നമുക്ക് ടെസ്റ്റ് നടത്തി ഫലങ്ങൾ താരതമ്യം ചെയ്യാം. പ്രകടന സ്ഥിതിവിവരക്കണക്കുകൾ ശ്രദ്ധിക്കുക:

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ഈ ടെസ്റ്റിന്റെ എല്ലാ വശങ്ങളിലും ഇവന്റുള്ള സെർവറിന്റെ പ്രകടനം അതിന്റെ പ്രീഫോർക്ക് എതിരാളിയേക്കാൾ വളരെ മികച്ചതാണ്.

നുറുങ്ങ് #4: അപ്പാച്ചെക്കായി റാം വിവേകപൂർവ്വം അനുവദിക്കുക

ഓരോ അപ്പാച്ചെ പ്രോസസിനും അനുവദിച്ചിട്ടുള്ള റാമിന്റെ അളവാണ് ഒരുപക്ഷേ കണക്കിലെടുക്കേണ്ട ഏറ്റവും പ്രധാനപ്പെട്ട ഹാർഡ്uവെയർ ഇനം. നിങ്ങൾക്ക് ഇത് നേരിട്ട് നിയന്ത്രിക്കാൻ കഴിയില്ലെങ്കിലും, നിങ്ങൾക്ക് MaxRequestWorkers നിർദ്ദേശത്തിലൂടെ (മുമ്പ് Apache 2.2-ൽ MaxClients എന്നറിയപ്പെട്ടിരുന്നു) ചൈൽഡ് പ്രോസസുകളുടെ എണ്ണം നിയന്ത്രിക്കാൻ കഴിയും, ഇത് Apache-യുടെ RAM ഉപയോഗത്തിന് പരിധി നിശ്ചയിക്കും. വീണ്ടും, നിങ്ങൾക്ക് ഈ മൂല്യം ഒരു ഹോസ്റ്റ് അല്ലെങ്കിൽ വെർച്വൽ ഹോസ്റ്റ് അടിസ്ഥാനത്തിൽ സജ്ജമാക്കാൻ കഴിയും.

ഇത് ചെയ്യുന്നതിന്, Apache ഉപയോഗിക്കുന്ന RAM-ന്റെ ശരാശരി അളവ് നിങ്ങൾ ശ്രദ്ധിക്കണം, തുടർന്ന് MaxRequestWorkers-ന്റെ എണ്ണം കൊണ്ട് ഗുണിക്കുക, അതാണ് Apache പ്രോസസ്സുകൾക്കായി നീക്കിവയ്ക്കുന്ന മെമ്മറിയുടെ അളവ്. നിങ്ങളുടെ വെബ് സെർവർ ഒരിക്കലും ചെയ്യാൻ ആഗ്രഹിക്കാത്ത ഒരു കാര്യം സ്വാപ്പ് ഉപയോഗിച്ച് തുടങ്ങുക എന്നതാണ്, അത് അതിന്റെ പ്രകടനത്തെ ഗണ്യമായി കുറയ്ക്കും. അതിനാൽ, അപ്പാച്ചെയുടെ റാം ഉപയോഗം നിങ്ങൾക്ക് താങ്ങാനാകുന്ന പരിധിക്കുള്ളിൽ സൂക്ഷിക്കണം, അതിനായി ഒരിക്കലും സ്വാപ്പിനെ ആശ്രയിക്കരുത്.

ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന ബ്ലോക്ക് ഒരേസമയം ക്ലയന്റുകളുടെ എണ്ണം 30 ആയി പരിമിതപ്പെടുത്തും. കൂടുതൽ ക്ലയന്റുകൾ ഹോസ്റ്റിൽ എത്തിയാൽ, ബ്രൗസർ പുതുക്കിയെടുക്കുന്നതിലൂടെ എളുപ്പത്തിൽ പരിഹരിക്കാവുന്ന ഒരു കാലതാമസമോ താൽക്കാലിക പരാജയമോ അവർക്ക് അനുഭവപ്പെട്ടേക്കാം. ഇത് അഭികാമ്യമല്ലെന്ന് കണക്കാക്കാമെങ്കിലും, ഇത് സെർവറിന് ആരോഗ്യകരവും ദീർഘകാലാടിസ്ഥാനത്തിൽ നിങ്ങളുടെ സൈറ്റിനും മികച്ചതുമാണ്.

നിങ്ങൾ CentOS ആണോ Debian ആണോ ഉപയോഗിക്കുന്നതെന്നതിനെ ആശ്രയിച്ച് നിങ്ങൾക്ക് ഈ ബ്ലോക്ക് /etc/httpd/conf/httpd.conf അല്ലെങ്കിൽ /etc/apache2/apache2.conf എന്നതിനുള്ളിൽ സ്ഥാപിക്കാം.

എല്ലാ MPM-കൾക്കും ഇതേ തത്ത്വം ബാധകമാണെന്ന കാര്യം ശ്രദ്ധിക്കുക - മുമ്പത്തെ ടിപ്പിൽ പറഞ്ഞിരിക്കുന്ന ആശയം തുടരാൻ ഞാൻ ഇവിടെ ഇവന്റ് ഉപയോഗിക്കുന്നു:

<IfModule mpm_event_module>
    StartServers 3
    MinSpareThreads          25
    MaxSpareThreads          75
    ThreadLimit                      64
    ThreadsPerChild          25
    MaxRequestWorkers    30
    MaxConnectionsPerChild    1000
</IfModule>

ഏത് സാഹചര്യത്തിലും, നിങ്ങൾ തിരഞ്ഞെടുത്ത MPM-ന് ഏതൊക്കെ നിർദ്ദേശങ്ങളാണ് അനുവദിച്ചിരിക്കുന്നതെന്ന് കാണാൻ അപ്പാച്ചെ 2.4 ഡോക്uസ് റഫർ ചെയ്യുന്നത് വളരെ ശുപാർശ ചെയ്യപ്പെടുന്നു.

ടിപ്പ് #5: നിങ്ങളുടെ ആപ്ലിക്കേഷനുകൾ അറിയുക

ഒരു ചട്ടം പോലെ, നിങ്ങളുടെ ആപ്ലിക്കേഷൻ പ്രവർത്തിക്കുന്നതിന് കർശനമായി ആവശ്യമില്ലാത്ത അപ്പാച്ചെ മൊഡ്യൂളുകളൊന്നും നിങ്ങൾ ലോഡ് ചെയ്യരുത്. ഇതിന് നിങ്ങളുടെ സെർവറിൽ പ്രവർത്തിക്കുന്ന ആപ്ലിക്കേഷനുകളെക്കുറിച്ച് മൊത്തത്തിലുള്ള അറിവെങ്കിലും ആവശ്യമാണ്, പ്രത്യേകിച്ചും നിങ്ങളൊരു സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററും വികസനത്തിന്റെ ചുമതലയുള്ള മറ്റൊരു ടീമും ഉണ്ടെങ്കിൽ.

നിലവിൽ ലോഡ് ചെയ്uതിരിക്കുന്ന മൊഡ്യൂളുകൾ ഇനിപ്പറയുന്നവ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ലിസ്റ്റുചെയ്യാനാകും:

# httpd -M          [On RedHat/CentOS based systems]
# apache2ctl -M     [On Debian/Ubuntu based systems]

CentOS-ൽ മൊഡ്യൂളുകൾ അൺലോഡ് ചെയ്യാനും അപ്രാപ്uതമാക്കാനും, LoadModule-ൽ ആരംഭിക്കുന്ന ലൈൻ (പ്രധാന കോൺഫിഗറേഷൻ ഫയലിൽ അല്ലെങ്കിൽ /etc/httpd/conf.modules.d എന്നതിനുള്ളിലെ ഒരു ഓക്സിലറി ഫയലിൽ) നിങ്ങൾ കമന്റ് ചെയ്യേണ്ടതുണ്ട്.

മറുവശത്ത്, മൊഡ്യൂളുകൾ പ്രവർത്തനരഹിതമാക്കാൻ ഡെബിയൻ a2dismod എന്ന ഒരു ടൂൾ നൽകുന്നു, അത് ഇനിപ്പറയുന്ന രീതിയിൽ ഉപയോഗിക്കുന്നു:

# a2dismod module_name

ഇത് തിരികെ പ്രവർത്തനക്ഷമമാക്കാൻ:

# a2enmod module_name

ഏത് സാഹചര്യത്തിലും, മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരുന്നതിന് അപ്പാച്ചെ പുനരാരംഭിക്കാൻ ഓർമ്മിക്കുക.

സംഗ്രഹം

ഈ ലേഖനത്തിൽ അപ്പാച്ചെ വെബ് സെർവർ ട്യൂൺ ചെയ്യാനും അതിന്റെ പ്രകടനം വർദ്ധിപ്പിക്കാനും നിങ്ങളെ സഹായിക്കുന്ന 5 നുറുങ്ങുകൾ ഞങ്ങൾ അവലോകനം ചെയ്തിട്ടുണ്ട്. കൂടാതെ, സുരക്ഷയില്ലാതെ ഒപ്റ്റിമൈസേഷനും പ്രകടനവും അർത്ഥശൂന്യമാണെന്ന് നിങ്ങൾ ഓർക്കണം, അതിനാൽ നിങ്ങൾ linux-console.net-ലെ അപ്പാച്ചെ ഹാർഡനിംഗ് നുറുങ്ങുകൾ ലേഖനം റഫർ ചെയ്യാൻ ആഗ്രഹിച്ചേക്കാം.

ഈ ലേഖനത്തിൽ ഈ വിഷയത്തിന്റെ എല്ലാ വശങ്ങളും ഞങ്ങൾക്ക് വേണ്ടത്ര ഉൾക്കൊള്ളാൻ കഴിയാത്തതിനാൽ, മറ്റ് കമ്മ്യൂണിറ്റികളുമായി പങ്കിടാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്ന മറ്റ് ആശയങ്ങളെക്കുറിച്ച് നിങ്ങൾ ചിന്തിച്ചേക്കാം. അങ്ങനെയാണെങ്കിൽ, ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിച്ച് ഞങ്ങളെ അറിയിക്കാൻ മടിക്കേണ്ടതില്ല.