Pāriet uz saturu
Izstrāde & sistēmas

Servera slodzes testēšana un FastCGI mikrokešatmiņa apmeklējuma pīķu izturēšanai

Aigars Armanovs Aigars Armanovs
• 10.10.25. • 6 min lasīšana
Redakcijas piezīme (2026. gada konteksts)

2026. gadā ielādes ātrumam jāiekļaujas Dohertija 400ms slieksnī, kur tīrs kods un servera kešatmiņa pilnībā izkonkurē smagnējus spraudņus. Uzziniet vairāk mūsu Mājaslapas ātruma optimizācija.

Kopsavilkums

Lielu mārketinga kampaņu laikā apmeklētāju plūsma var pieaugt 10-20 reizes, radot servera pārslodzi un 504 Gateway Timeout kļūdas. Standarta PHP procesi nespēj vienlaikus apkalpot simtiem pieprasījumu; risinājums ir Nginx FastCGI microcaching, kas statiskās lapas servē tieši no RAM atmiņas mazāk nekā 10 milisekundēs, saglabājot vietni stabilu pie jebkuras slodzes.

Lielākais murgs jebkuram uzņēmējam ir situācija, kad dārgi apmaksātā reklāmas kampaņa beidzot sāk nest tūkstošiem apmeklētāju, bet mājaslapa pēc piecām minūtēm kļūst nepieejama un rāda "504 Gateway Timeout" vai "502 Bad Gateway" kļūdas paziņojumu. Katra dīkstāves minūte šādā brīdī nozīmē simtiem vai tūkstošiem eiro negūtu ieņēmumu un neatgriezeniski zaudētu pircēju uzticību.

Daudzi kļūdaini uzskata, ka risinājums ir dārgāks serveris, taču uzticama serveru uzturēšana ar Nginx arhitektūru panāk stabilitāti ar pareizu konfigurāciju. Tomēr praksē pat 32 kodolu serveris bez pareizas kešatmiņas arhitektūras sabrūk jau pie 100 vienlaicīgiem dinamiskiem PHP pieprasījumiem. Šajā tehniskajā pamācībā parādīsim, kā ar atvērtā koda rīkiem veikt reālu slodzes testēšanu un ieviest Nginx FastCGI mikrokešatmiņu, kas ļauj parastam virtuālajam serverim bez piepūles apkalpot tūkstošiem pieprasījumu sekundē.

1. Solis - Reālistiska slodzes testa izveide ar k6

Vienkārša vienas lapas pingēšana nesniedz patiesu priekšstatu par to, kā vietne uzvedīsies, kad reāli lietotāji meklēs produktus, pievienos preces grozam un pārlūkos kategorijas. Slodzes testam ir jābūt daudzpakāpju scenārijam. Rīks k6 ir ideāli piemērots, jo tas ļauj rakstīt scenārijus modernā JavaScript sintaksē.

import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  stages: [
    { duration: '1m', target: 50 },  // Iesildīšanās līdz 50 lietotājiem
    { duration: '3m', target: 200 }, // Pīķa slodze: 200 vienlaicīgi lietotāji
    { duration: '1m', target: 0 },   // Atslābums
  ],
  thresholds: {
    http_req_duration: ['p(95)<400'], // 95% atbilžu jābūt zem 400ms
    http_req_failed: ['rate<0.01'],    // Kļūdu skaits zem 1%
  },
};

export default function () {
  // 1. Apmeklē sākumlapu
  let res1 = http.get('https://marketmenow.eu/');
  check(res1, { 'status ir 200': (r) => r.status === 200 });
  sleep(1);

  // 2. Pārlūko pakalpojumu sadaļu
  let res2 = http.get('https://marketmenow.eu/majaslapu-izstrade/');
  check(res2, { 'pakalpojumu lapa ielādēta': (r) => r.status === 200 });
  sleep(2);
}

Kad tiek veikta profesionāla mājaslapas ātruma optimizācija, šāds slodzes tests precīzi atklāj vājās vietas pirms reālā mārketinga starta.

Aigars Armanovs
Aigars Armanovs Vadošais Tehnoloģiju & Mārketinga Arhitekts

"Katrs dinamisks WordPress lapas pieprasījums prasa 50 līdz 150 datubāzes vaicājumus un simtiem PHP failu interpretāciju. Ja jums vienā minūtē atnāk 1,000 apmeklētāju, tas nozīmē 100,000 datubāzes vaicājumu. Nginx FastCGI mikrokešatmiņa saglabā gatavu HTML atbildi uz 5 līdz 60 sekundēm RAM atmiņā. Rezultātā PHP un MySQL netiek lieki darbināti vispār, un lapas atbildes laiks krītas no 800ms uz 8ms."

2. Solis - Nginx FastCGI mikrokešatmiņas ieviešana

Mikrokešatmiņas (microcaching) noslēpums ir ļoti īss kešatmiņas laiks (piemēram, 10 sekundes statiskajām lapām un emuāram). Tas nozīmē, ka saturs apmeklētājiem vienmēr ir svaigs, bet pēkšņos pīķos visi 500 apmeklētāji saņem vienu un to pašu iepriekš uzģenerēto HTML failu tieši no Nginx atmiņas.

# 1. Definē kešatmiņas ceļu Nginx konfigurācijas sākumā (ārpus server bloka)
fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m max_size=1g;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header updating http_500 http_503;

# 2. Servera blokā definē izņēmumus (Grozi, kases, autorizēti lietotāji)
set $skip_cache 0;

if ($request_method = POST) {
    set $skip_cache 1;
}
if ($query_string != "") {
    set $skip_cache 1;
}
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/cart/|/checkout/|/my-account/") {
    set $skip_cache 1;
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $skip_cache 1;
}

# 3. PHP lokācijā pieslēdz kešatmiņu
location ~ \.php$ {
    fastcgi_cache WORDPRESS;
    fastcgi_cache_valid 200 301 302 10s;
    fastcgi_cache_bypass $skip_cache;
    fastcgi_no_cache $skip_cache;
    add_header X-FastCGI-Cache $upstream_cache_status;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

3. Solis - Veiktspējas salīdzinājums pirms un pēc

Šādu stabilitāti demonstrē arī moderna mājaslapu izstrāde ar tīru kodu, par ko liecina reāli rādītāji testā ar 200 aktīviem lietotājiem:

Metrika Standarta PHP-FPM bez kešatmiņas Nginx FastCGI mikrokešatmiņa
Pieprasījumi sekundē (RPS) 18 RPS (sistēma nosmok) 1,450+ RPS (brīva jauda)
Servera atbildes laiks (TTFB) 1,850 ms (kavēšanās) 12 ms (zibenīgs)
CPU noslodze pīķa brīdī 100% (bloķēti procesi) 14% (optimāls režīms)
Kļūdu biežums (502 / 504) 34.2% kļūdu 0.00% kļūdu
Ātrā pašpārbaude

Servera pārbaudes soļi pirms lielajām izpārdošanām

1
Slodzes audits: Izpildiet k6 slodzes testu vismaz 3 reizes virs prognozētās maksimālās satiksmes.
2
FastCGI galvene: Pārbaudiet pārlūkā atbildes galveni X-FastCGI-Cache: HIT publiskajām lapām.
3
Groza neaizskaramība: Pārliecinieties, ka ieliekot preci grozā, galvene pārslēdzas uz BYPASS.
4
Žurnālfailu uzraudzība: Pārbaudiet Nginx un PHP-FPM kļūdu žurnālus pirms kampaņu oficiālā starta.

Biežāk uzdotie jautājumi par servera veiktspēju un mikrokešatmiņu

Kas ir Nginx FastCGI mikrokešatmiņa (microcaching)?

Tā ir tehnoloģija, kas kešo dinamiskas lapas servera operatīvajā atmiņā uz ļoti īsu laiku (piem., 1 līdz 5 sekundēm). Tā rezultātā tūkstošiem lietotāju saņem lapu acumirklī, neapgrūtinot PHP un datubāzi.

Kā mikrokešs darbojas ar e-veikalu groziem un lietotāju profiliem?

Pareizi konfigurēts Nginx ignorē kešu tikai autorizētiem lietotājiem un sesijām, kurās ir aktīvs grozs, nodrošinot, ka personalizētie dati paliek 100% dinamiski.

Ar kādiem rīkiem veikt servera slodzes testus?

Nozares standarti ir k6 vai Locust, kas ļauj simulēt pakāpenisku slodzes pieaugumu (piem., no 50 līdz 1000 paralēliem apmeklētājiem) un atklāt servera vājās vietas pirms reālās kampaņas.

Vēlaties zibenīgu mājaslapas ielādi un zaļo zonu Google PageSpeed testā?

Piesakiet 15 minūšu sarunu. Veiksim detalizētu koda un servera auditu, atbrīvojot vietni no bremzējošiem spraudņiem un bibliotēkām.

Fiksēts budžets. Nekādu slēptu papildmaksu vai uzspiestu pakalpojumu.
Noderīgs saturs?

Padalies ar šo rakstu ar kolēģiem vai partneriem

Palīdzi citiem atklāt praktiskas digitālā mārketinga, SEO un AI automatizācijas stratēģijas.

Aigars Armanovs

Aigars Armanovs

SEO arhitekts & AI procesu vadītājs | MMN dibinātājs

MMN vadītājs Aigars mārketingā pirmo pieredzi guvis mārketinga speciālista amatā veikalu tīklā Drogas 2005. gadā, vēlāk attīstot privātus interneta projektus un vadot vadošu digitālā mārketinga aģentūru Latvijā ar fokusu uz Google produktiem. Šobrīd specializējas digitālā mārketinga, SEO un biznesa procesu automatizācijā ar mākslīgā intelekta risinājumiem, palīdzot uzņēmumiem mērogot rezultātus.

Visi autora raksti • SEO pakalpojumi • LinkedIn profils
← Iepriekšējais raksts

Melnās Piektdienas mārketinga kampaņu tehniskā plānošana un sagatavošanās soļi

Nākamais raksts →

TOP 7 kļūdas Google Ads reklāmu tekstos un piedāvājuma formulējumā

Atgriezties uz visiem rakstiem

Vēlaties pārrunāt sava biznesa digitālo izaugsmi?

Piesakiet 30 minūšu stratēģijas sarunu. Kopā izskatīsim jūsu digitālā mārketinga, SEO un AI automatizācijas potenciālu.

Pieteikt bezmaksas sarunu
Scroll to Top
Zvanīt
Pieteikt 15 min sarunu Atbilde vidēji 2h laikā