Siirry pääsisältöön

PHP-asetukset, muistirajat ja optimointi

Opas PHP-asetuksiin, muistirajoihin ja sivuston optimointiin Seravolla. Lue miten hallitset resursseja, vältät aikakatkaisut ja optimoit tietokannan suorituskyvyn.

Päivitetty tänään

Seravon ylläpito on standardoitu ja optimoitu tarjoamaan WordPress-sivustoille parasta mahdollista suorituskykyä ja tietoturvaa. Tämän vuoksi järjestelmätason asetukset on vakioitu, mutta kehittäjillä on silti keinoja hallita sivuston resurssien käyttöä.

Järjestelmäasetukset ja käyttöoikeudet

Seravo on täyden ylläpidon palvelu, jossa vastaamme palvelinympäristön turvallisuudesta ja optimoinnista puolestasi. Tämän vuoksi:

  • Ei root-oikeuksia: Käyttäjille ei myönnetä pääkäyttäjäoikeuksia (root/sudo) tai muokkausoikeuksia järjestelmätiedostoihin (kuten /etc/nginx tai php.ini).

  • Vakioitu ympäristö: Kaikki sivustot toimivat samassa optimoidussa infrastruktuurissa, mikä takaa automaattiset tietoturvapäivitykset ja vakaan suorituskyvyn.

Järjestelmätason oletusarvot (php.ini)

Seravon ympäristössä on käytössä seuraavat oletusarvot, jotka on todettu optimaalisiksi valtaosalle WordPress-sivustoista:

  • PHP-muistiraja (memory_limit): 256M

  • PHP-suoritusaika (max_execution_time): 60s

  • Tiedostojen latausraja (upload_max_filesize): 128M

Asetusten väliaikainen nostaminen

Asiakkaat eivät voi itse muokata php.ini-tiedostoa. Jos kuitenkin tarvitset poikkeuksellisesti korkeampia arvoja esimerkiksi suuren datatuonnin (import) ajaksi:

  1. Ota yhteyttä asiakaspalveluumme. Voimme nostaa arvoja hetkellisesti poikkeustilanteissa.

  2. Huom! Nämä muutokset eivät ole pysyviä. Arvot palautuvat oletusarvoihinsa aina, kun sivuston instanssi käynnistetään taustalla uudelleen.

Tärkeää: Tiedostojen 128M latausraja on kiinteä, eikä sitä voida nostaa. Jos sinun täytyy siirtää tätä suurempia tiedostoja, tutustu ohjeeseemme: Miten lataan palvelimelle isoja yli 128 MB tiedostoja?

Muistirajan muokkaaminen itse

Voit hallita WordPressin käyttämää muistia wp-config.php-tiedoston kautta. Jos sivustollasi ilmenee "Memory exhausted" -virheitä, voit nostaa rajoja lisäämällä seuraavat rivit:

define('WP_MEMORY_LIMIT', '256M'); 
define('WP_MAX_MEMORY_LIMIT', '512M');

Vianetsintä ja lokien seuranta

Jos epäilet, että sivustosi saavuttaa muisti- tai suoritusajan rajat, voit seurata tapahtumia reaaliajassa komentoriviltä (SSH):

  • wp-watch-php: Seuraa PHP-virhelokeja reaaliajassa.

  • wp-watch-logs: Seuraa sivuston kaikkia lokeja (mukaan lukien palvelinloki).

Lokitiedostot löytyvät polusta: /data/log/php-error.log.

Suorituskyvyn ja tietokannan optimointi

Muistinkäyttöön tai suoritusaikaan liittyvät virheet ovat usein merkki siitä, että sivuston koodia tai tietokantaa on syytä optimoida. Resurssien käytön tehostaminen on kestävämpi ratkaisu kuin pelkkä rajoitusarvojen kasvattaminen. Usein "Timeout" tai "Memory exhausted" -virheet johtuvat tehottomasta koodista tai raskaista tietokantakyselyistä.

Tietokannan optimointi

  • Puuttuvat indeksit: Hidas tietokantakysely voi aiheuttaa PHP-suoritusajan ylittymisen. Tarkista, puuttuuko usein käytetyistä kyselyistä indeksejä. Voit käyttää apuna työkaluja kuten Query Monitor tai tutkia hitaiden kyselyiden lokia.

  • Taulujen optimointi: Voit ajaa perusoptimoinnin kaikille tietokantatauluille komennolla: wp-db-optimize.

Raskaat integraatiot ja taustaprosessit

Jos sivustolla on hitaita toimintoja, kuten suuria tiedostonsiirtoja tai integraatioita kolmannen osapuolen järjestelmiin, niitä ei kannata ajaa HTTP-pyynnön yhteydessä.

  • Siirto palvelimen croneihin: Siirrä raskaat integraatiot ajettavaksi taustalla palvelimen omina cron-ajoina. Tämä estää sivustoa jumiutumasta ja välttää selaimen aikakatkaisut.

  • Käytä komentoriviä (CLI): Huomioithan, että komentoriviltä (SSH) ajettaessa PHP-prosesseilla ei ole samoja suoritusaika- tai muistirajoituksia kuin selainpyynnöillä. Jos sinun on ajettava erittäin raskas tai kauan kestävä kertaluonteinen tehtävä, on suositeltavaa ajaa se WP-CLI:n avulla selaimen sijaan.

Yleiset suositukset

  • Välimuisti: Hyödynnä WordPressin objektivälimuistia (Redis) raskaiden laskutoimitusten tai kyselyiden tallentamiseen.

  • Kyselyiden rajoittaminen: Vältä suuria get_posts-hakuja ilman sivutusta. Käytä fields => ids -asetusta, jos tarvitset vain tunnisteet.

  • Kuvat: Vältä erittäin suurten kuvien (esim. 10MB+) lataamista suoraan WordPressiin, sillä niiden prosessointi kuluttaa valtavasti muistia.

Vastasiko tämä kysymykseesi?