Testovanie záťaže Apache HTTP Server na malom VPS: metóda a výsledky


Dátum vydania:

Aktualizované:


Technické články > Testovanie záťaže Apache HTTP Server na malom VPS: metóda a výsledky

Stav a bezpečné používanie v roku 2026

Záver: Článok opisuje jeden historický záťažový test Apache na VPS, nie všeobecný limit jeho kapacity. Výsledky závisia od obsahu odpovede, MPM, limitov procesov, KeepAlive, TLS, výkonu servera, siete aj požadovanej latencie.

Čo sa naučíte

  • Ako bol pôvodný test navrhnutý a čo z nameraných hodnôt možno a nemožno vyvodiť.
  • Ktoré metriky Apache a operačného systému pomáhajú identifikovať prvé úzke miesto.
  • Ako navrhnúť opakovateľný záťažový test so zahrievaním, percentilmi, chybami a telemetriou na strane servera.

Pre koho je to určené: Inžinieri plánujúci prvý experiment s webovým serverom na malom VPS.

Kontext v roku 2026: Uvedené merania pochádzajú z pôvodného prostredia autora a pri tejto aktualizácii sa neopakovali. Nepovažujte ich za aktuálny údaj poskytovateľa ani za odporúčanie pre dimenzovanie produkcie. Otestujte vlastnú aplikáciu a stanovte si prijateľnú latenciu a chybovosť.

Bezpečnostná poznámka: Príkazy a príklady konfigurácie v pôvodnom článku neboli znovu spustené v aktuálnom produkčnom prostredí. Pred ich použitím overte podporované verzie, zálohy, prístupové oprávnenia a postup obnovy v oddelenom testovacom prostredí.

Hlavné oficiálne zdroje

Prehľad

Táto prípadová štúdia zaznamenáva záťažový test webového servera Apache na prenajatom VPS. Počet súbežných požiadaviek sa zvyšoval až do prvého zlyhania, aby sa v danom prostredí našlo úzke miesto. Výsledky slúžia ako ukážka postupu merania, nie ako záruka kapacity iného servera.

Tento test sa týka iba webového servera Apache. Samostatný článok opisuje rovnaký typ merania pri zostave Apache a Tomcat.

Záťažový test Apache a Tomcat na prenajatom VPS

Obsah

  1. Meranie
  2. Podrobnosti o výsledkoch merania
  3. Zhrnutie

1. Meranie

1-1. Prostredie merania

Test prebehol v nasledujúcom prostredí.

■ Parametre prenajatého servera

CPU2core
Pamäť1GB
SSD50GB

■ Softvér servera

OSCentOS 7.4 64bit
Webový serverApache HTTP Server 2.4.41

1-2. Metóda merania

Na meranie bol použitý JMeter, záťažový nástroj spúšťaný v Jave. Počet súbežných požiadaviek sa postupne zvyšoval, kým ich server prestal spoľahlivo spracúvať.

Test mal tieto podmienky:

  • Interval požiadaviek: 5 sekúnd
  • Počiatočný počet súbežných požiadaviek: 10 (v každom ďalšom meraní sa zvýšil o 10)
  • Trvanie merania: 60 sekúnd

Pri trvaní 60 sekúnd a intervale 5 sekúnd sa každá požiadavka opakovala 12-krát (60 ÷ 5).

1-3. Výsledok merania

V testovanom prostredí sa prvé zlyhanie objavilo po prekročení 120 súbežných požiadaviek. Nasledujúca hodnota preto opisuje iba tento konkrétny test.

CPU: 2core
memory: 1GB
SSD: 50GB
Súčasne možno spracovať až 120 požiadaviek.

Nasledujúce hodnoty sú pôvodné lineárne odhady podľa veľkosti pamäte. Neboli samostatne overené a nemajú sa používať ako kapacitná záruka.

CPU: 1core
memory: 512MB
SSD: 25GB
Súčasne možno spracovať až 60 požiadaviek.
CPU: 2core
memory: 1GB
SSD: 50GB
Súčasne možno spracovať až 120 požiadaviek.
CPU: 3core
memory: 2GB
SSD: 100GB
Súčasne možno spracovať až 240 požiadaviek.

V pôvodnom odhade zodpovedala zostava s jedným jadrom CPU, 512 MB pamäte a 25 GB SSD približne 60 súbežným požiadavkám. Tento počet nemožno zamieňať s počtom reálnych používateľov.

2. Podrobnosti o výsledkoch merania

Nasledujú podrobnosti, z ktorých vychádza uvedený výsledok.

2-1. Meranie webového servera Apache

Opakované požiadavky smerovali na jednoduchú stránku HTML bez spracovania v PHP a bez zložitého JavaScriptu.

Meranie prinieslo tieto výsledky:

  • 10 súbežných požiadaviek – úspech
  • 20 súbežných požiadaviek – úspech
  • 30 súbežných požiadaviek – úspech
  • 40 súbežných požiadaviek – úspech
  • 50 súbežných požiadaviek – úspech
  • 60 súbežných požiadaviek – úspech
  • 70 súbežných požiadaviek – úspech
  • 80 súbežných požiadaviek – úspech
  • 90 súbežných požiadaviek – úspech
  • 100 súbežných požiadaviek – úspech
  • 110 súbežných požiadaviek – úspech
  • 120 súbežných požiadaviek – úspech
  • 130 súbežných požiadaviek – zlyhanie

Pri 130 súbežných požiadavkách nastala chyba pripojenia k Apache. Server mal v tom čase nasledujúce využitie zdrojov:

  • Využitie CPU: 26%
  • Využitie pamäte: 100%

Prvým pozorovaným úzkym miestom bola vyčerpaná pamäť.

Test používal nasledujúcu konfiguráciu modulu viacnásobného spracovania servera Apache (MPM), ktorý okrem iného určuje počet paralelne obsluhovaných požiadaviek.

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

Hodnota "250" v nastavení "MaxRequestWorkers" predstavuje horný limit súbežne obsluhovaných požiadaviek. Pamäť sa však vyčerpala skôr: jeden proces podľa pozorovania spotreboval približne 8 MB.

Pri 120 procesoch spotreboval Apache približne 960 MB pamäte (8 MB × 120). Hoci bol limit nastavený na 250, dostupná pamäť neumožnila vytvoriť viac než približne 120 procesov.
Poznámka: Server mal 1 GB pamäte, takže bol takmer na jej hranici.

Pri reálnej prevádzke by časť pamäte spotrebovali aj PHP, Java alebo ďalšie služby. Bez nového merania preto nemožno z tohto výsledku odvodiť bezpečný produkčný limit.

V tomto konkrétnom teste samotného Apache bola pri zostave s dvoma jadrami CPU, 1 GB pamäte a 50 GB SSD hranica pozorovaná pri približne 120 súbežných požiadavkách.

2-2. Vyhodnotenie

Keďže prvým úzkym miestom bola pamäť, pôvodný článok odhadoval počet procesov pri inej kapacite pamäte. Ide o lineárny odhad, nie o výsledok ďalších meraní.

Pôvodná zostava (pamäť 1 GB)

  • Pamäť: 1 GB
  • Počet procesov Apache: 120
  • Spotreba pamäte na jeden proces Apache: 8 MB
  • Spotreba pamäte Apache: 960 MB (120 procesov × 8 MB)

Odhad po zmene (pamäť 2 GB)

  • Pamäť: 2 GB
  • Počet procesov Apache: 240
  • Spotreba pamäte na jeden proces Apache: 8 MB
  • Spotreba pamäte Apache: 1920 MB (240 procesov × 8 MB)

Lineárny odhad pri 2 GB pamäte vychádza na približne 240 procesov, táto hodnota však nebola nameraná. Po zvýšení pamäte sa môže prejaviť iné úzke miesto, napríklad CPU, sieť alebo limit MaxRequestWorkers. Každú novú zostavu treba znovu otestovať. Pôvodný odhad pre polovičnú pamäť vyzeral takto:

Odhad po zmene (pamäť 512 MB)

  • Pamäť: 512 MB
  • Počet procesov Apache: 60
  • Spotreba pamäte na jeden proces Apache: 8 MB
  • Spotreba pamäte Apache: 480 MB (60 procesov × 8 MB)

3. Zhrnutie

Historický test samotného Apache dosiahol zvolenú hranicu približne pri 120 súbežných požiadavkách na serveri s dvoma jadrami CPU a 1 GB pamäte. Odhad 60 požiadaviek pre 512 MB nebol samostatne overený a nepredstavuje bezpečný počet reálnych používateľov.

Výsledok vznikol pri jednoduchej statickej stránke a bez záťaže ďalších služieb. Produkčnú zostavu treba dimenzovať s rezervou a overiť testom, ktorý zodpovedá skutočnej aplikácii.

Pri porovnávaní výsledkov sledujte okrem priepustnosti aj percentily latencie, chybovosť a využitie serverových zdrojov.