Megmértem a maximális esetszámot, amelyet a webszerver (Apache) egyidejűleg kezelni tud egy VPS bérleti szerver segítségével.
Megjelenés dátuma:2020. december 31.
INFOMARTION > Megmértem a maximális esetszámot, amelyet a webszerver (Apache) egyidejűleg kezelni tud egy VPS bérleti szerver segítségével.
Á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.
※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.
Köszönjük, hogy a végéig figyeltek.