Obremenitveni preizkus strežnika Apache HTTP na majhnem VPS: postopek in rezultati


Datum objave:

Posodobljeno:


Tehnični članki > Obremenitveni preizkus strežnika Apache HTTP na majhnem VPS: postopek in rezultati

Stanje in varna uporaba v letu 2026

Sklep: Članek dokumentira en preizkus na VPS, ne pa splošne meje strežnika Apache. Zmogljivost je odvisna od vsebine odziva, modula MPM, omejitev procesov, povezav KeepAlive, TLS, procesorja, pomnilnika, diska, omrežja, lokacije odjemalca in merila sprejemljive zakasnitve.

Kaj boste izvedeli

  • Kako je bil izveden prvotni preizkus in kaj izmerjene vrednosti povedo oziroma česa ne dokazujejo.
  • Kako metrike strežnika Apache in operacijskega sistema pomagajo odkriti prvo ozko grlo.
  • Kako zasnovati ponovljiv preizkus s fazo ogrevanja, percentili zakasnitve, napakami in telemetrijo strežnika.

Komu je članek namenjen? Inženirjem, ki načrtujejo prvi obremenitveni preizkus spletnega strežnika na majhnem VPS.

Opomba za leto 2026: Spodnje meritve so iz prvotnega okolja in ob tej uredniški posodobitvi niso bile ponovljene. Ne uporabljajte jih kot trenutno primerjalno merilo ponudnika ali priporočilo za dimenzioniranje produkcije; preizkusite svojo aplikacijo in določite lastne pragove zakasnitve ter napak.

Varnostna opomba: Ukazi in konfiguracijski primeri iz prvotnega članka niso bili znova preizkušeni v sodobnem produkcijskem okolju. Pred uporabo v ločenem preizkusnem okolju preverite podprte različice, izdelajte varnostne kopije ter določite nadzor dostopa in postopek povrnitve.

Uradni viri

Pregled

Članek predstavlja rezultate preizkusa največjega števila sočasnih zahtev, ki jih je v določenem okolju obdelal spletni strežnik Apache. Rezultati so študija primera in niso neposredno priporočilo za izbiro zmogljivosti drugega VPS.

Ta preizkus zajema samo spletni strežnik Apache. Ločen članek obravnava okolje z Apachejem in Tomcatom.

Obremenitveni preizkus strežnikov Apache in Tomcat na VPS: ozka grla in rezultati

Kazalo vsebine

  1. Meritev
  2. Podrobnosti rezultatov
  3. Povzetek

1. Meritev

1-1. Preizkusno okolje

Meritev je bila izvedena v naslednjem okolju.

■ Zmogljivost VPS

Procesor2 jedri
Pomnilnik1 GB
SSD50 GB

■ Programska oprema strežnika

Operacijski sistemCentOS 7.4, 64-bitni
Spletni strežnikApache HTTP Server 2.4.41

1-2. Postopek meritve

Za ustvarjanje obremenitve je bil uporabljen JMeter, orodje, napisano v Javi, ki lahko pošilja več zahtev sočasno. Število sočasnih zahtev se je povečevalo v korakih, dokler okolje ni več uspešno opravilo preizkusa.

Zabeleženi pogoji preizkusa so bili:

  • Presledek med zahtevami: 5 sekund.
  • Začetno število sočasnih zahtev: 10; nato se je povečevalo po 10.
  • Trajanje posamezne meritve: 60 sekund.

Pri 60-sekundnem preizkusu in 5-sekundnem presledku je vsak navidezni uporabnik zahtevo poslal približno 12-krat (60 ÷ 5).

1-3. Rezultati meritve

V opisanem okolju je bil največji uspešno opravljen korak 120 sočasnih zahtev.

Procesor: 2 jedri
Pomnilnik: 1 GB
SSD: 50 GB
Izmerjeno: uspeh pri 120 sočasnih zahtevah.

Spodnje vrednosti za drugačne zmogljivosti so grobe linearne ocene iz prvotnega članka, ne ločene meritve. Dejanska zmogljivost se ne spreminja nujno sorazmerno s pomnilnikom ali številom jeder.

Procesor: 1 jedro
Pomnilnik: 512 MB
SSD: 25 GB
Groba ocena: 60 sočasnih zahtev.
Procesor: 2 jedri
Pomnilnik: 1 GB
SSD: 50 GB
Izmerjeno: 120 sočasnih zahtev.
Procesor: 3 jedra
Pomnilnik: 2 GB
SSD: 100 GB
Groba ocena: 240 sočasnih zahtev.

Število sočasnih zahtev ni enako številu uporabnikov, zato iz te meritve ni mogoče zanesljivo sklepati, koliko uporabnikov podpira sistem z 1 jedrom in 512 MB pomnilnika.

2. Podrobnosti rezultatov

V nadaljevanju so zapisani posamezni koraki preizkusa in opažena poraba virov.

2-1. Meritev spletnega strežnika Apache

Zahteve so bile poslane na preprosto statično stran HTML brez obdelave v PHP-ju ali JavaScriptu.

Zabeleženi rezultati posameznih korakov so bili:

  • 10 sočasnih zahtev ⇒ uspešno
  • 20 sočasnih zahtev ⇒ uspešno
  • 30 sočasnih zahtev ⇒ uspešno
  • 40 sočasnih zahtev ⇒ uspešno
  • 50 sočasnih zahtev ⇒ uspešno
  • 60 sočasnih zahtev ⇒ uspešno
  • 70 sočasnih zahtev ⇒ uspešno
  • 80 sočasnih zahtev ⇒ uspešno
  • 90 sočasnih zahtev ⇒ uspešno
  • 100 sočasnih zahtev ⇒ uspešno
  • 110 sočasnih zahtev ⇒ uspešno
  • 120 sočasnih zahtev ⇒ uspešno
  • 130 sočasnih zahtev ⇒ napaka

Pri koraku s 130 sočasnimi zahtevami je odjemalec zabeležil napako povezave s strežnikom Apache. Takrat sta bili izmerjeni naslednji vrednosti:

  • Uporaba procesorja: 26 %
  • Uporaba pomnilnika: 100 %

Meritev zato kaže, da je bilo v tem preizkusu prvo opaženo ozko grlo pomnilnik.

Uporabljena konfiguracija modula MPM prefork je bila naslednja. MPM med drugim določa, koliko zahtev lahko Apache obdeluje vzporedno.

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

Direktiva "MaxRequestWorkers" je bila nastavljena na 250, kar je zgornja meja sočasno obdelanih zahtev. Ta meja ne zagotavlja, da ima sistem dovolj pomnilnika za toliko procesov. V preizkusu je posamezni proces porabil približno 8 MB.

Pri 120 procesih je groba poraba znašala približno 960 MB (8 MB × 120), zato se je strežnik z 1 GB pomnilnika približal meji, še preden je dosegel nastavitev 250.
Opomba: Gre za opažanje v tem okolju, ne za stalno porabo vsakega procesa Apache.

Če isti VPS poganja tudi PHP, Javo ali druge storitve, je za Apache na voljo manj pomnilnika in je lahko meja nižja. Potreben je skupni preizkus celotnega sklada.

V opisanem okolju, kjer je deloval samo Apache, je bil zadnji uspešni korak pri 120 sočasnih zahtevah.

2-2. Razlaga rezultatov

Ker je bil v tem preizkusu pomnilnik prvo ozko grlo, prvotni članek primerja grobe izračune pri različnih količinah pomnilnika. To niso ponovno izvedene meritve.

Izmerjeno okolje z 1 GB pomnilnika:

  • Pomnilnik: 1 GB
  • Število procesov Apache: približno 120
  • Ocenjena poraba na proces Apache: 8 MB
  • Ocenjena skupna poraba Apache: 960 MB (120 × 8 MB)

Groba ocena pri 2 GB pomnilnika:

  • Pomnilnik: 2 GB
  • Ocenjeno število procesov Apache: približno 240
  • Predpostavljena poraba na proces Apache: 8 MB
  • Ocenjena skupna poraba Apache: 1920 MB (240 × 8 MB)

Če bi poraba na proces ostala nespremenjena, bi grobi izračun pri 2 GB dopuščal približno 240 procesov. To mora potrditi meritev, saj se lahko prej pojavijo druga ozka grla. Pri dodatnem pomnilniku bi zgornjo mejo določala tudi direktiva MaxRequestWorkers z vrednostjo 250.

Groba ocena pri 512 MB pomnilnika:

  • Pomnilnik: 512 MB
  • Ocenjeno število procesov Apache: približno 60
  • Predpostavljena poraba na proces Apache: 8 MB
  • Ocenjena skupna poraba Apache: 480 MB (60 × 8 MB)

3. Povzetek

Na določenem VPS z 2 jedroma in 1 GB pomnilnika je statična stran uspešno prestala korak s 120 sočasnimi zahtevami, pri 130 pa se je pojavila napaka povezave in pomnilnik je bil v celoti uporabljen.

Rezultat ne določa števila uporabnikov in ga ni mogoče neposredno prenesti na drugo aplikacijo ali okolje. Produkcijsko zmogljivost določite z merjenjem lastnega celotnega sklada, pragovi zakasnitve in napak ter ustrezno rezervo virov.

Pri uporabi v novejšem okolju upoštevajte tudi opombe o različicah in varnosti na začetku članka.