Suorituskyvyn viritys
Suorituskykyasetukset auttavat optimoimaan Chamiloa nopeampia sivulatauksia ja parempaa resurssien käyttöä varten, erityisesti alustoilla, joilla on paljon samanaikaisia käyttäjiä.
Lisäviite: Chamilo-asennukseesi sisältyy laajennettu optimointiopas. Avaa selaimessa
/documentation/optimization.html(esim.https://your-chamilo-site/documentation/optimization.html) saadaksesi versiosi mukaiset palvelintason suositukset.
Symfony-välimuisti
Chamilo 3.0 on rakennettu Symfonyn päälle, joka käyttää käännettyä välimuistia reititykseen, riippuvuusinjektioon ja mallipohjiin. Tämän välimuistin hallinta on suorituskyvyn kannalta olennaista.
Välimuistin tyhjennys
Konfiguraatiomuutosten, käyttöönoton tai päivitysten jälkeen tyhjennä Symfony-välimuisti:
# Clear cache for the current environment
php bin/console cache:clear
# For production environments specifically
php bin/console cache:clear --env=prodTuotannossa varmista aina, että APP_ENV=prod on asetettu .env.local-tiedostossasi. Kehitysympäristö (APP_ENV=dev) sisältää runsaasti virheenkorjauskuormaa, eikä sitä saa koskaan käyttää tuotannossa.
Välimuistin esilämmitys
Välimuistin tyhjennyksen jälkeen lämmitä se esikääntääksesi mallipohjat ja konfiguraation:
php bin/console cache:warmup --env=prodVälimuististrategiat
OPcache
PHP:n sisäänrakennettu opcode-välimuisti. Varmista, että se on käytössä php.ini-tiedostossa riittävällä muistilla (opcache.memory_consumption=256). Tämä on yksittäisenä toimenpiteenä vaikuttavin suorituskykyoptimointi.
APCu
Symfony käyttää muistissa olevaa avain–arvo-välimuistia metatietojen tallentamiseen. Asenna APCu PHP -laajennus ja määritä se Symfony-välimuistikonfiguraatiossa.
Redis / Memcached
Vilkkaasti liikennöidyillä alustoilla määritä ulkoinen välimuistitausta. Aseta välimuistisovitin tiedostossa config/packages/cache.yaml.
Suositellut OPcache-asetukset
Kun validate_timestamps on asetettu arvoon 0, OPcache on tyhjennettävä uuden koodin käyttöönoton jälkeen (käynnistä PHP-FPM uudelleen tai kutsu opcache_reset()).
Laiska lataus
Kuvien laiska lataus
Ottaa käyttöön kuvien loading="lazy"-attribuutin, jotta näkymän ulkopuoliset kuvat ladataan vasta, kun ne vieritetään näkyviin. Lyhentää alkuperäistä sivun latausaikaa.
JavaScriptin viivästetty lataus
Lataa ei-kriittiset JavaScript-tiedostot asynkronisesti, jotta sivun renderöinti ei esty.
CDN (sisällönjakeluverkko)
Alustoilla, jotka palvelevat käyttäjiä useilla maantieteellisillä alueilla, CDN voi merkittävästi parantaa staattisten resurssien (CSS, JavaScript, kuvat) latausaikoja.
CDN:n määrittäminen:
Luo CDN-jakelu (esim. CloudFront, Cloudflare tai muu palveluntarjoaja), joka osoittaa Chamilo-palvelimeesi.
Määritä resurssien perus-URL ympäristössäsi tai Symfony-konfiguraatiossa, jotta staattiset resurssit palvellaan CDN:n kautta.
Aseta staattisille tiedostoille sopivat välimuistiotsakkeet (pitkä vanhenemisaika versioiduille resursseille).
Tietokannan optimointi
Käytä tietokantayhteyksien poolingia
Korkean rinnakkaisuuden alustoilla määritä yhteyksien pooling vähentääksesi tietokantayhteyksien avaamisen aiheuttamaa kuormaa.
Optimoi kyselyt
Chamilo sisältää tietokantaindeksit yleisille kyselyille. Suorita ANALYZE TABLE säännöllisesti MySQL-/MariaDB-ympäristössä, jotta kyselysuunnittelijan tilastot pysyvät ajan tasalla.
Erillinen tietokantapalvelin
Suurissa asennuksissa aja tietokanta omalla palvelimellaan sen sijaan, että jaat resurssit WWW-palvelimen kanssa.
WWW-palvelimen konfiguraatio
Ota gzip-/brotli-pakkaus käyttöön
Pakkaa HTML-, CSS- ja JavaScript-vastaukset. Useimmat WWW-palvelimet tukevat tätä natiivisti.
Staattisten tiedostojen välimuistitus
Aseta staattisille resursseille pitkät Cache-Control- ja Expires-otsakkeet.
PHP-FPM:n viritys
Säädä pm.max_children, pm.start_servers ja pm.max_requests käytettävissä olevan RAM-muistin ja odotetun rinnakkaisuuden mukaan.
HTTP/2
Ota HTTP/2 käyttöön WWW-palvelimessasi multipleksoituja yhteyksiä ja otsakkeiden pakkausta varten.
Vinkkejä
OPcache on yksittäisenä toimenpiteenä suurin voitto -- Varmista, että se on käytössä ja oikein mitoitettu, ennen kuin etenet muihin optimointeihin.
Älä koskaan aja tuotantoa asetuksella
APP_ENV=dev-- Virheenkorjauspalkki ja profilointityökalu lisäävät merkittävää kuormaa jokaiseen pyyntöön.Seuraa ennen viritystä -- Käytä työkaluja, kuten New Relic, Blackfire tai Symfonyn sisäänrakennettu profilointityökalu (kehitystilassa), tunnistaaksesi todelliset pullonkaulat arvailun sijaan.
Lämmitä välimuisti jokaisen käyttöönoton jälkeen, jotta ensimmäinen käyttäjä ei osu hitaaseen, välimuistittomaan pyyntöön.
Päivitetty viimeksi
Oliko tästä apua?