Apache HTTP Server terhelés tesztelése egy kis VPS-en: módszer és eredmények
Közzétéve:
Frissítve:
Cikkek › Apache HTTP Server terhelés tesztelése egy kis VPS-en: módszer és eredmények
A 2026-os helyzet és biztonságos használat
Következtetés: Ez a cikk egy VPS-kísérletet rögzít, nem pedig egy univerzális Apache egyidejűségi korlátot. A kapacitás függ a válaszmunkától, az MPM-től, a dolgozói korlátoktól, az életben tartástól, a TLS-től, a CPU-tól, a memóriától, a tárhelytől, a hálózattól, az ügyfélelhelyezéstől és az Ön által elfogadhatóként meghatározott késleltetési céltól.
Amit megtudhat
- Hogyan készült az eredeti teszt, és mit mutatnak a megfigyelt számok – és mit nem.
- Mely Apache és operációs rendszer mérőszámai segítenek azonosítani az első szűk keresztmetszetet.
- Hogyan tervezzünk megismételhető terhelési tesztet bemelegítéssel, percentilisekkel, hibákkal és szerveroldali telemetriával.
Kinek szól a cikk: Mérnökök, akik első lépéses webszerver-kísérletet terveznek egy kis VPS-en.
Aktuális helyzet 2026-ban: Az alábbi mérések megmaradtak a szerző eredeti környezetéből, és nem futottak újra ehhez a frissítéshez. Ne használja őket aktuális szállítói referenciaértékként vagy gyártási méretezési ajánlásként; tesztelje saját alkalmazását és meghibásodási küszöbértékeit.
Biztonsági megjegyzés: Az eredeti cikk parancsait és konfigurációs példáit nem futtattuk újra modern éles környezetben. Alkalmazás előtt ellenőrizze a támogatott verziókat, készítsen biztonsági másolatot, és külön tesztkörnyezetben készítse elő a visszaállítást.
Hivatalos források
Áttekintés
Megmértem a webszerver (Apache) által egyszerre feldolgozható maximális esetszámot, és az eredményekről szeretnék írni. Kíváncsiak voltunk a maximálisan kiszolgálható kérések számára, ezért felmérést végeztünk. Használja ezt referenciaként a VPS-kiszolgáló specifikációinak kiválasztásához.
A méréseket ezúttal csak a WEB (Apache) szerveren végeztük, de a WEB/AP szervereken (Apache és Tomcat) végzett mérésekről lásd az alábbi cikket.
Tartalomjegyzék
1. mérés
1-1. Mérési környezet
A következőkben ismertetjük azt a környezetet, amelyben a méréseket végezzük.
■Bérleti szerver információk
| CPU | 2core |
|---|---|
| memory | 1GB |
| SSD | 50GB |
■Szerver információk
| OS | CentOS 7.4 64bit |
|---|---|
| Webszerver | Apache HTTP Server 2.4.41 |
1-2. Mérési módszer
Ezt a JMeter segítségével szeretném mérni. A JMeter egy Java nyelven futó terhelésmérő eszköz. Az eszköz lehetővé teszi, hogy egyszerre nagyszámú kérést dobjanak be. Szeretnénk fokozatosan növelni az egyidejű kérések számát a JMeter segítségével, és addig növelni a terhelést, amíg a feldolgozást már nem lehet kezelni.
A különleges feltételek közé tartoznak.
- kérési időköz···5 sec.
- Egyidejű kérések száma···10 eset. (A mérések fokozatosan, egyenként 10 esettel növekedtek).
- Az idő mérése···60 másodperc.
A mérési idő "60 másodperc", a lekérdezési intervallum pedig "5 másodperc", tehát 12 alkalommal (60÷5) ismételten szeretne hozzáférni a rendszerhez.
1-3. mérési eredmény
Végül is sokakat érdekel a következtetés, hogy milyen specifikációkat tud kezelni a szerver, és mennyit tud kezelni, ezért először a következtetést szeretném megfogalmazni.
| CPU:2core memory:1GB SSD:50GB | Egyidejűleg legfeljebb 120 kérés dolgozható fel. |
|---|
A mérés eredményei a fentieket mutatták. A fenti eredményekből a következőkre lehet következtetni. Próbálja ezt kritériumként használni a szerver specifikációinak kiválasztásakor.
| CPU:1core memory:512MB SSD:25GB | Egyidejűleg legfeljebb 60 kérés dolgozható fel. |
|---|---|
| CPU:2core memory:1GB SSD:50GB | Egyidejűleg legfeljebb 120 kérés dolgozható fel. |
| CPU:3core memory:2GB SSD:100GB | Egyidejűleg legfeljebb 240 kérés dolgozható fel. |
Még a "CPU: 1 mag", "memória: 512 MB" és "SSD: 25 GB" specifikációkkal is úgy találták, hogy egy körülbelül 60 fős rendszer gond nélkül működhet.
2. A mérési eredmények részletei
A mérési eredményeket már korábban leírtuk, de ha érdekli, hogy milyen eredményeket írtunk le, kérjük, nézze meg a mérési eredmények részleteit is, amelyeket a jövőben ismertetünk.
2-1. WEB szerver (Apache) mérések
A HTML-ben létrehozott oldalakkal szemben ismételt kéréseket dobtak. Ez egy egyszerű oldal, PHP-feldolgozás vagy bonyolult JavaScript nélkül.
A mérések a következő eredményeket mutatták.
- 10 egyidejű kérés esetén⇒OK
- 20 egyidejű kérés esetén⇒OK
- 30 egyidejű kérés esetén⇒OK
- 40 egyidejű kérés esetén⇒OK
- 50 egyidejű kérés esetén⇒OK
- 60 egyidejű kérés esetén⇒OK
- 70 egyidejű kérés esetén⇒OK
- 80 egyidejű kérés esetén⇒OK
- 90 egyidejű kérés esetén⇒OK
- 100 egyidejű kérés esetén⇒OK
- 110 egyidejű kérés⇒OK
- 120 egyidejű kérés esetén⇒OK
- 130 egyidejű kérés esetén⇒NG
Hiba történt a 130. esetnél. Az ok az Apache-hoz való kapcsolódási hiba volt. A szerver állapota ekkor a következő volt.
- CPU kihasználtság···26%
- memóriahasználati arány···100%
A memória teljes hiánya volt a szűk keresztmetszet.
Az Apache Multi-Processing Module (MPM) konfigurációja a következő. Az MPM-et egyszerűen úgy magyarázzák, mint annak beállítását, hogy az Apache mennyit dolgozhat fel párhuzamosan.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
A "MaxRequestWorkers" beállítása a "250". Ez a beállítás az Apache által egyszerre feldolgozható esetek maximális számát határozza meg. '250', így 250 esetet lehetett maximálisan párhuzamosan feldolgozni, de a memóriahasználatot tekintve esetenként körülbelül 8 MB memóriát használtak.
Úgy tűnt, hogy 960 MB memóriát használ (8M x 120 folyamat), és a beállítási érték "250" volt, de úgy tűnt, hogy nem lehetett "120" folyamatnál többet létrehozni.
Megjegyzés:A szerver memóriája már majdnem elérte az 1G-os határértéket.
A szerver tényleges működtetésekor, ha a PHP és a Java is szerepel, a limit 100 eset körül van, és ha van hely, 80 esetet lehet párhuzamosan feldolgozni.
Ha csak az Apache van telepítve és fut, a "CPU: 2 mag, memória: 1 GB, SSD: 50 GB" specifikációkkal, az egyidejű hozzáférések száma "120" volt a határérték.
2-2. ellenszolgáltatás
Innentől válik megfontolás tárgyává, de mivel a memória a szűk keresztmetszet, ha a memória változik, az egyidejűleg feldolgozható folyamatok száma is nő.
[Jelen vannak. (memory1GB)]
- memory:1GB
- Apache szálak száma:120 eset
- Memóriafogyasztás szálanként az Apache-ban.:8MB
- Apache memóriafogyasztás:960MB(120 eset×8MB)
[a változás után(memory2GB)]
- memory:2GB
- Apache szálak száma:240 eset.
- Memóriafogyasztás szálanként az Apache-ban.:8MB
- Apache memóriafogyasztás:1920MB(240 eset.×8MB)
Ha a memóriát 2 GB-ra növeljük, akkor az esetek száma megduplázható, körülbelül 240-re növelhető egyidejűleg. Ha a memóriát 3GB-ra növeljük, úgy tűnik, hogy több egyidejű feldolgozás végezhető el, de az Apache MPM "MaxRequestWorkers (az egyidejűleg feldolgozható esetek maximális száma)" értéke "250", így a memória további növelése esetén itt is szükség lesz a tuningra. Fordítva, ha a memória felére csökken, akkor ez a következőképpen néz ki.
[a változás után(memory512GB)]
- memory:512GB
- Apache szálak száma:60 eset.
- Memóriafogyasztás szálanként az Apache-ban.:8MB
- Apache memóriafogyasztás:480MB(60 eset.×8MB)
3. összefoglaló
Megmértük a webszerver (Apache) által egyszerre feldolgozható maximális esetszámot. Kiderült, hogy egy körülbelül 60 fős rendszer gond nélkül működhet "CPU: 1 mag", "memória: 512 MB" és "SSD: 25 GB" mellett.
A felmérés azon a feltételezésen alapul, hogy más szoftverek nem futnak marginális teljesítményen. Ajánlatos egy kis mozgástérrel rendelkező specifikációt választani, mivel ez egy határérték.
Ezek a legfontosabb figyelembe veendő lépések és korlátozások.
■Cikkek
■Profil
■Kapcsolat