Paljud kasutavad apache2-d veebiserverina. Siiski ei mõtle paljud selle jõudluse optimeerimisele, mis mõjutab otse veebilehe laadimiskiirust, skriptide (eriti php) töötlemise kiirusest ning koormuse kasvu CPU-l ja suurenevat mälu kasutust.
Seega peab järgmine juhend aitama algajaid (ja mitte ainult) kasutajaid.
Kõiki alltoodud näiteid testiti Raspberry PI 3, Debian 9, Apache 2.4.38 ja PHP 7.3 peal.
Nii et alustame.
1. Kasutamata moodulite keelamine
Esimene meetod on lihtsalt keelata moodulid, mida te ei kasuta:
Praegu kasutatavate moodulite loetelu saab vaadata käsuga:
apache2ctl -MMooduli keelamiseks kasutatakse käsku:
a2dismod *mooduli nimi*Samuti mooduli sisselülitamiseks kasutatakse käsku:
a2enmod *mooduli nimi*Pange tähele, et käsu a2dismod, mooduli nimi tuleb kirjutada ilma sõnaga moodul.
Näiteks, kui te nägite käsu apache2ctl -M tulemuses proxy_module, siis selle keelamiseks tuleb kasutada käsku — a2dismod proxy
Süsteemi enam koormavaid mooduleid (isikliku kogemuse põhjal) on:
- PHP, Ruby, Perl ja muud moodulid erinevate skriptikeelte jaoks
- SSL
- Rewrite
- CGI
Nii et juhul, kui neid mooduleid ei vajata, soovitan need välja lülitada.
Samuti, pärast mõne mooduli väljalülitamist, soovitan kasutada käsku — apache2ctl configtest, mis kontrollib kasutatavate saitide konfiguratsiooni ja kui mõni väljalülitatud moodul on nende jaoks vajalik, väljastab vea.
2. MPM (Multi-Processing Module) muutmine ja php-fpm kasutamine
Vaikimisi, pärast installimist, kasutab apache2 MPM Preforki (1 niit 1 ühenduse kohta), mis vähendab oluliselt jõudlust, ent parandab samas stabiilsust ja turvalisust.
Kuid jõudluse optimeerimiseks soovitan kasutada MPM Workerit, mis võimaldab korraga kasutada mitu niiti ühele ühendusele.
Selle aktiveerimiseks kasutage järgmisi käske:
a2dismod mpm_prefork //Lülitame välja prefork
a2dismod php7.3 //Lülitame välja php mooduli, mis sõltub preforkist
a2enmod mpm_worker //Aktiveerime worker
Kuid Workerit kasutades võite kokku puutuda probleemiga, kuna php7.3 moodul sõltub Prefork moodulist.
Selle probleemi lahendamiseks installime php7.3-fpm mooduli, mis kasutusele võetakse php-skriptide töötlemiseks:
apt-get update && apt-get install php7.3-fpm //Installime
systemctl enable php7.3-fpm && systemctl start php7.3-fpm //Lisame autolaadimise ja käivitame
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf //Aktiveerime mooduli ja selle konfi
Tuleb märkida, et php-fpm-i kasutamine vähendab ka apache2 protsessi kasutatavat RAM-i mahtu ning kiirendab veidi php-skriptide töötlemist.
3. Kokkuvõte
Nii saime neid lihtsaid samme järgides optimeerida jõudlust ja vähendada koormust masinale (antud juhul RPI3).
Loomulikult on sadu teisi optimeerimisvõimalusi, nagu näiteks kokkusurumise aktiveerimine (mis on tõepoolest kasulik, kuid enamasti on see juba vaikimisi sisse lülitatud), MPM konfiguratsioonifailide muutmine, HostnameLookups'i väljalülitamine jne, kuid selles artiklis püüdsin kajastada just neid punkte, mis aitasid mind enim, ja loodan, et need aitavad ka teisi.
Allikas: habr.com
