1. Çaktivizoni modulet Apache
2. Vendosni mpm_prefork
3. Zvogëloni shkrimet tuaja
4. Konsideroni të zëvendësoni mod_php
5. Konsideroni të zëvendësoni mpm_prefork
Apache është shumë i lehtë për t'u instaluar dhe inicializuar, por ai vjen me module të shumta të para-instaluara dhe si rezultat mund të keni probleme me performancën kur punoni me një RAM të ulët VPS.
Pra, nuk ka gjithmonë nevojë për një server më të madh, por thjesht mund të konfiguroni cilësimet e Apache në mënyrën e duhur dhe të keni performancën më të mirë të mundshme. Këtu janë disa gjëra që duhet të bëni për ta arritur këtë.
Ky tutorial është për Ubuntu 14.04 LTS por parimet janë gjithashtu të ngjashme me versionet e mëparshme.
1. Çaktivizoni modulet Apache
Ju mund të shihni një listë të të gjitha moduleve të instaluara me komandën
ls /etc/apache2/mods-available/dhe të gjitha modulet që janë aktualisht aktive me ls /etc/apache2/mods-enabled/.
Në instalimin fillestar të Apache-së ka 15 ose më shumë module të aktivizuara si parazgjedhje. Këto janë shumë dhe shumica e tyre nuk janë të nevojshme.
Para së gjithash, duhet të bëni një listë të të gjitha moduleve aktualisht aktive dhe ta ruani për referencë në të ardhmen në rast se çaktivizoni diçka që ju nevojitet dhe duhet ta riaktivizoni atë. Pastaj thjesht çaktivizoni modulet një nga një me komandën (duke përdorur modulName si shembull):
sudo a2dismod moduleName
... dhe rinisni Apache pas çdo ndryshimi për të parë nëse ndodh ndonjë gabim.
Disa module që duhet t'i çaktivizoni nëse nuk ju nevojiten janë:
- PHP
- SSL
- Rishkruaj
- Perl
- Python
Pasi të çaktivizoni një modul dhe të rifreskoni konfigurimin e Apache, mund të kontrolloni për gabime duke hapur regjistrin e gabimeve të Apache me një redaktues teksti si nano.
sudo nano /var/log/apache2/error.log
Nëse merrni një gabim, thjesht ri-aktivizoni modulin përkatës me:
sudo a2enmod moduleName
Pastaj, rinisni përsëri Apache derisa të zgjidhni listën minimale!
2. Vendosni mpm_prefork
Me konfigurimin e parazgjedhur të Apache (i cili nuk është i balancuar mirë për serverët e vegjël), memoria mund të shterohet shpejt dhe serveri juaj cloud mund të mbingarkohet. Kjo do të bëjë që faqja e internetit të varet në një gjendje ngarkimi të vazhdueshëm. Ka të ngjarë që serveri t'i mbajë aktive këto procese të vdekura Apache, duke u përpjekur të shërbejë përmbajtjen në mënyrë të panevojshme, duke zvogëluar numrin e proceseve të disponueshme për t'u shërbyer.
Për të zgjidhur këtë problem, së pari duhet të zbuloni se sa RAM ka nevojë serveri juaj, përveç Apache dhe sasisë mesatare të memories që proceset Apache po përdorin.
Ndërsa Apache po funksionon, hapni komandën kryesore në server.
top -bn 1
Në tabelën e rezultateve:
- shtoni numrat në kolonën RES lart për çdo proces, përveç apache2 dhe më pas hiqni atë nga sasia totale e RAM-it. Le të themi se merrni 600 MB .
- merrni mesataren nga të gjitha proceset apache2 . Le të themi se merrni 20 MB .
- atëherë, thjesht bëni ndarjen 600/20 = 30 procese maksimale Apache
Hapi tjetër, modifikoni skedarin e konfigurimit të modulit mpm_prefork:
sudo nano /etc/apache2/mods-enabled/mpm_prefork.conf
Mund të duket kështu:
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
MaxRequestWorkers 30
MaxConnectionsPerChild 0
</IfModule>
Ku:
- StartServers: numri i proceseve të serverit për të filluar.
- MinSpareServers: numri minimal i proceseve të serverit që mbahen të lirë.
- MaxSpareServers: numri maksimal i proceseve të serverit që mbahen të lirë.
- MaxRequestWorkers: numri maksimal i proceseve të serverit të lejuara për të filluar.
- MaxConnectionsPerChild: numri maksimal i kërkesave që shërben një proces serveri.
Në cilësimin MaxRequestWorkers , duhet ta ndryshoni atë në çfarëdo që keni gjetur në ndarjen e mësipërme.
Tani, nëse VPS-ja juaj mbingarkohet dhe arrin numrin maksimal të klientëve që mund të shërbejë menjëherë, ai do t'u shërbejë atyre dhe përdoruesit e tjerë thjesht do të kenë një dështim të shpejtë. Më pas ata mund të rifreskojnë faqen për të provuar përsëri. Është shumë më mirë që këto lidhje të mbyllen shpejt, por ta lini serverin në një gjendje të shëndetshme në vend që të qëndroni të hapur përgjithmonë.
3. Zvogëloni shkrimet tuaja
Për të maksimizuar performancën, patjetër që mund të regjistroni më pak informacion. Në konfigurimin e parazgjedhur të Apache, cilësimi i LogLevel është caktuar të paralajmërojë . Ju mund ta ndryshoni atë në gabim për të mbajtur vetëm mesazhet e gabimit.
Hapni skedarin e konfigurimit të Apache:
sudo nano /etc/apache2/apache2.conf
Gjeni rreshtin:
LogLevel warn
... dhe ndryshojeni në:
LogLevel error
Pastaj, ruani skedarin dhe rinisni Apache me:
sudo service apache2 restart
Skedari i paracaktuar që Apache mban regjistrat është /var/log/apache2/error.log .
4. Konsideroni të zëvendësoni mod_php
Nëse drejtoni një sajt PHP, ka shumë mundësi që të përdorni modulin mod_php. Ky modul mund të bëjë që çdo proces fëmijë Apache të përdorë mbi 100 MB RAM edhe nëse kërkesat janë për burime statike si imazhe, css dhe javascript.
Një alternativë e shkëlqyer është moduli php-fpm , i cili është një proces i veçantë që përdor protokollin fastcgi. Me php-fpm, memoria për proceset Apache mund të bjerë në 10 MB për përmbajtje statike dhe 60 MB për dinamike.
Edhe pse mund të jetë pak e vështirë që gjërat të funksionojnë me këtë ndryshim, ia vlen përpjekja.
5. Konsideroni të zëvendësoni mpm_prefork
Shumica e konfigurimeve të Apache janë duke përdorur modulin mpm_prefork, i cili është i sigurt në thread dhe përdor procese të shumta fëmijë me një thread secili dhe secili proces trajton një lidhje në një kohë. Nëse nuk keni nevojë për module të jashtme si PHP ose Rails, atëherë mund ta zëvendësoni atë me modulin apache2-mpm-worker , i cili shpesh është më i shpejtë. Worker MPM përdor procese të shumëfishta fëmijë me shumë thread secila dhe çdo thread trajton një lidhje në një kohë.
Për të aktivizuar modulin e punëtorit, duhet ta instaloni atë.
sudo apt-get install apache2-mpm-worker
Kjo komandë do të çinstalojë mpm_prefork , mos_php dhe module të tjera shtesë të papajtueshme.