Daudzi cilvÄki izmanto apache2 kÄ savu tÄ«mekļa serveri. TomÄr daži cilvÄki domÄ par tÄ veiktspÄjas optimizÄÅ”anu, kas tieÅ”i ietekmÄ vietnes lapas ielÄdes Ätrumu, skriptu (Ä«paÅ”i php) apstrÄdes Ätrumu, kÄ arÄ« CPU slodzes palielinÄÅ”anos un izmantotÄs RAM apjoma palielinÄÅ”anos.
TÄdÄjÄdi Å”ai rokasgrÄmatai vajadzÄtu palÄ«dzÄt iesÄcÄjiem (un ne tikai) lietotÄjiem.
Visi tÄlÄk norÄdÄ«tie piemÄri tika izmantoti Raspberry PI 3 ierÄ«cÄ. Debian 9, Apache 2.4.38, PHP 7.3.
TÄtad, pieÅemsim sÄkt.
1. Nelietoto moduļu atspÄjoÅ”ana
PirmÄ metode ir vienkÄrÅ”i atspÄjot moduļus, kurus neizmantojat:
Šobrīd izmantoto moduļu sarakstu var apskatīt ar komandu:
apache2ctl -MLai atspÄjotu moduli, izmantojiet komandu:
a2dismod *название Š¼Š¾Š“ŃŠ»Ń*AttiecÄ«gi, lai iespÄjotu moduli, tiek izmantota komanda:
a2enmod *название Š¼Š¾Š“ŃŠ»Ń*LÅ«dzu, Åemiet vÄrÄ, ka, lietojot a2dismod, moduļa nosaukums jÄraksta bez paÅ”a vÄrda modulis.
PiemÄram, ja atrodaties komandas izvadÄ apache2ctl -M redzÄju starpniekservera_modulis, lai to atspÄjotu, jums jÄizmanto komanda - a2dismod starpniekserveris
Moduļi, kas visvairÄk ielÄdÄ sistÄmu (pÄc personÄ«gÄs pieredzes), ir:
- PHP, Ruby, Perl un citi moduļi dažÄdÄm skriptu valodÄm
- SSL
- Rerīts
- CGI
TÄpÄc gadÄ«jumos, kad Å”ie moduļi nav nepiecieÅ”ami, iesaku Å”os moduļus atspÄjot.
TÄpat pÄc jebkura moduļa atspÄjoÅ”anas iesaku izmantot komandu ā apache2ctl konfigurÄcijas tests, kas pÄrbaudÄ«s izmantoto vietÅu konfigurÄciju un, ja tÄm bija nepiecieÅ”ams kÄds no atspÄjotajiem moduļiem, tas parÄdÄ«s kļūdu.
2. Mainiet MPM (Multi-Processing Module) un izmantojiet php-fpm
PÄc noklusÄjuma apache2 pÄc instalÄÅ”anas izmanto MPM Prefork (1 pavediens uz 1 savienojumu), kas ievÄrojami samazina veiktspÄju, bet uzlabo stabilitÄti un droŔību.
Bet, lai optimizÄtu veiktspÄju, es iesaku izmantot MPM Worker, kas vienÄ savienojumÄ Ä¼auj vienlaikus izmantot vairÄkus pavedienus.
Lai to iespÄjotu, izmantojiet Å”Ädas komandas:
a2dismod mpm_prefork //ŠŃŠŗŠ»ŃŃŠ°ŠµŠ¼ prefork
a2dismod php7.3 //ŠŃŠŗŠ»ŃŃŠ°ŠµŠ¼ Š¼Š¾Š“ŃŠ»Ń php, ŠŗŠ¾ŃŠ¾ŃŃŠ¹ Š·Š°Š²ŠøŃŠøŃ Š¾Ń prefork
a2enmod mpm_worker //ŠŠŗŠ»ŃŃŠ°ŠµŠ¼ worker
TomÄr, izmantojot Worker, var rasties problÄma, jo php7.3 modulis ir atkarÄ«gs no Prefork moduļa.
Lai atrisinÄtu Å”o problÄmu, instalÄjiet php7.3-fpm moduli, kas tiks izmantots php skriptu apstrÄdei:
apt-get update && apt-get install php7.3-fpm //Š£ŃŃŠ°Š½Š°Š²Š»ŠøŠ²Š°ŠµŠ¼
systemctl enable php7.3-fpm && systemctl start php7.3-fpm //ŠŠ¾Š±Š°Š²Š»Ńем в Š°Š²ŃозагŃŃŠ·ŠŗŃ Šø запŃŃŠŗŠ°ŠµŠ¼
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf //ŠŠŗŠ»ŃŃŠ°ŠµŠ¼ Š¼Š¾Š“ŃŠ»Ń Šø ŠŗŠ¾Š½ŃŠøŠ³ Š“Š»Ń Š½ŠµŠ³Š¾
Ir vÄrts atzÄ«mÄt, ka php-fpm izmantoÅ”ana samazinÄs arÄ« apache2 procesa izmantotÄs RAM apjomu un nedaudz paÄtrinÄs php skriptu apstrÄdi.
3. SecinÄjums
TÄdÄjÄdi ar tik vienkÄrÅ”Äm darbÄ«bÄm mÄs varÄjÄm optimizÄt veiktspÄju un samazinÄt iekÄrtas slodzi (Å”ajÄ gadÄ«jumÄ RPI3).
Protams, ir arÄ« simtiem citu optimizÄcijas iespÄju, piemÄram, iespÄjot kompresiju (kas tieÅ”Äm ir noderÄ«gi, bet lielÄkÄ daļa jau ir iespÄjota pÄc noklusÄjuma), mainÄ«t MPM parametrus (konfigurÄcijas failus), atspÄjot HostnameLookups utt., bet Å ajÄ rakstÄ es centos atspoguļot tos punktus, kas man ir palÄ«dzÄjuÅ”i visvairÄk, un, cerams, noderÄs arÄ« citiem.
Avots: www.habr.com
