Išmatavau, kiek daugiausiai WEB/AP serverių ("Apache" ir "Tomcat") gali veikti vienu metu naudojant VPS nuomojamą serverį.
Paskelbimo data:2021 m. sausio 1 d.
INFOMARTION > Išmatavau, kiek daugiausiai WEB/AP serverių ("Apache" ir "Tomcat") gali veikti vienu metu naudojant VPS nuomojamą serverį.
Apžvalga.
Išmatavau maksimalų atvejų skaičių, kurį WEB/AP serveriai ("Apache" ir "Tomcat") gali apdoroti vienu metu, ir norėčiau parašyti apie rezultatus. Mums buvo įdomu, kiek daugiausia užklausų galima aptarnauti, todėl atlikome apklausą. Naudokite tai kaip nuorodą rinkdamiesi VPS serverio specifikacijas.
Šį kartą matavimai atlikti WEB ir AP serveriuose ("Apache" ir "Tomcat"), tačiau toliau pateiktame straipsnyje rasite tik WEB ("Apache") matavimus.
Turinys
1. matavimas
1-1. Matavimo aplinka
Toliau pateikiama aplinka, kurioje bus atliekami matavimai.
■Nuomos serverio informacija
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Serverio informacija
OS | CentOS 7.4 64bit |
---|---|
Žiniatinklio serveris | Apache HTTP Server 2.4.41 |
AP serveris | Apache Tomcat 9.0.27 |
DB serveris | PostgreSQL 10.2 |
Java | OpenJDK 11 |
1-2. Matavimo metodas
Norėčiau tai išmatuoti naudodamas "JMeter". "JMeter" yra apkrovos matavimo įrankis, veikiantis "Java" kalba. Įrankis leidžia vienu metu išmesti daug užklausų. Naudodami "JMeter" norėtume palaipsniui didinti vienalaikių užklausų skaičių ir didinti apkrovą tol, kol nebegalėsime apdoroti duomenų.
Specifinės sąlygos.
- užklausos intervalas・・・5 sek.
- Vienu metu pateiktų užklausų skaičius・・・10 atvejų.(Matavimai palaipsniui didėjo po 10 atvejų.)
- Laiko matavimas・・・60 sekundžių.
Matavimo laikas yra "60 sekundžių", o užklausos intervalas - "5 sekundės", todėl norite pakartotinai prisijungti prie sistemos 12 kartų (60÷5).
1-3. matavimo rezultatas
Galiausiai daugelį žmonių domina išvada, kokių specifikacijų serveris gali dirbti ir kiek jis gali dirbti, todėl pirmiausia norėčiau pateikti išvadą.
CPU:2core memory:1GB SSD:50GB | Vienu metu galima apdoroti iki 80 užklausų |
---|
Šio matavimo rezultatai parodė tai, kas išdėstyta pirmiau. Iš pirmiau pateiktų rezultatų galima daryti tokias išvadas. Rinkdamiesi serverio specifikacijas, pabandykite vadovautis šiuo kriterijumi.
CPU:1core memory:512MB SSD:25GB | Vienu metu galima apdoroti iki 20 užklausų. |
---|---|
CPU:2core memory:1GB SSD:50GB | Vienu metu galima apdoroti iki 80 užklausų |
CPU:3core memory:2GB SSD:100GB | Vienu metu galima apdoroti iki 200 užklausų. |
Buvo nustatyta, kad maždaug 20 naudotojų dydžio sistema veiktų be problemų su "CPU: 1core", "memory: 512MB" ir "SSD: 25GB".
2. Išsami informacija apie matavimo rezultatus
Matavimo rezultatus aprašėme anksčiau, tačiau jei jus domina, kokius rezultatus aprašėme, taip pat susipažinkite su išsamia matavimo rezultatų informacija, kuri bus aprašyta ateityje.
2-1. WEB/AP serverio (Apache, Tomcat) matavimai
Užklausa buvo išmesta, kai naudotojas prisijungia iš prisijungimo ekrano, o prisijungus rodomas sąrašo ekranas. Beje, ekranas sukurtas naudojant "Spring" sistemą, įskaitant autentifikavimo funkciją.
Atlikus matavimus gauti tokie rezultatai.
- 10 užklausų vienu metu⇒OK
- 20 užklausų vienu metu⇒OK
- 30 užklausų vienu metu⇒OK
- 40 užklausų vienu metu⇒OK
- 50 užklausų vienu metu⇒OK
- 60 užklausų vienu metu⇒OK
- 70 užklausų vienu metu⇒OK
- 80 užklausų vienu metu⇒OK
- 90 užklausų vienu metu⇒NG
Klaida įvyko ties 90-uoju atveju. Priežastis - ryšio su "Apache" klaida. Tuo metu serverio būklė buvo tokia.
- Procesoriaus apkrovimas・・・26%
- atminties panaudojimas・・・100%
Sunkumų kėlė visiškas atminties trūkumas.
Šiek tiek labiau išprususiems, "Apache Multi-Processing Module" (MPM) konfigūracija yra tokia. MPM paprasčiausiai paaiškinamas kaip nustatymas, kiek "Apache" leidžiama apdoroti lygiagrečiai.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Domina nustatymas "MaxRequestWorkers" - "250". Tai nustatymas, kiek daugiausia bylų "Apache" gali apdoroti vienu metu. '250', todėl maksimaliai lygiagrečiai buvo galima apdoroti 250 atvejų, tačiau žiūrint į atminties naudojimą, vienam atvejui buvo naudojama apie 8 MB atminties.
Atrodė, kad "Java" naudoja 320 MB atminties (248M kaupui ir 72M metapasauliui), o "Apache" - 640 MB atminties (8M x 80 procesų), ir nors "Apache" MPM nustatymo reikšmė yra "250", atrodė, kad ji negali sukurti daugiau nei "80" procesų.
※Serveryje yra 1G atminties, todėl bendra "Apache" ir "Java" atmintis yra 960 MB, t. y. beveik ties viršutine riba.
AP serveris (Java pusė) veikė gerai, todėl kliūtis buvo WEB serveris (Apache).
Įdiegus ir paleidus "Apache" ir "Tomcat", nustatėme, kad su specifikacijomis "CPU: 2core, memory: 1GB, SSD: 50GB" vienalaikių prieigų skaičius "80" yra riba.(Daroma prielaida, kad "Java" atminties nustatymai yra 248M kaupui ir 72M metapasauliui.)
2-2. svarstymas
Toliau tai tampa svarstymu, bet kadangi atmintis yra siauras kaklelis, pakeitus atmintį, padidės ir vienu metu apdorojamų procesų skaičius.
【Dalyvauja.(memory1GB)】
- memory:1GB
- "Apache" gijų skaičius:80 atvejų.
- Atminties suvartojimas vienam "Apache" srautui:8MB
- "Apache" atminties suvartojimas:640MB(80 atvejų.×8MB)
- "Tomcat" atminties suvartojimas:320MB(248 mln. eurų HEAP.、72 m metapasauliui.)
- "Apache+Tomcat" atminties sąnaudos:960MB
【po pakeitimo(memory2GB)】
- memory:2GB
- "Apache" gijų skaičius:200 dėžių
- Atminties suvartojimas vienam "Apache" srautui:8MB
- "Apache" atminties suvartojimas:1600MB(200 dėžių×8MB)
- "Tomcat" atminties suvartojimas:320MB(248 mln. eurų HEAP.、72 m metapasauliui.)
- "Apache+Tomcat" atminties sąnaudos:1920MB
Turint 2 GB atminties, vienu metu galima apdoroti 200 bylų. Padidinus atmintį iki 3 GB, atrodo, kad vienu metu galima apdoroti daugiau duomenų, tačiau "Apache" MPM "MaxRequestWorkers (didžiausias vienu metu apdorojamų atvejų skaičius)" yra "250", todėl, dar labiau padidinus atmintį, čia taip pat reikės atlikti derinimą. Taip pat gali prireikti "Java" atminties derinimo. Ir atvirkščiai, jei atmintis būtų sumažinta perpus, ji būtų tokia.
【po pakeitimo(memory512GB)】
- memory:512GB
- "Apache" gijų skaičius:20 atvejų
- Atminties suvartojimas vienam "Apache" srautui:8MB
- "Apache" atminties suvartojimas:160MB(20 atvejų×8MB)
- "Tomcat" atminties suvartojimas:320MB(248 mln. eurų HEAP.、72 m metapasauliui.)
- "Apache+Tomcat" atminties sąnaudos:480MB
3. santrauka
Aprašomi didžiausio atvejų, kuriuos WEB/AP serveriai (Apache ir Tomcat) gali apdoroti vienu metu, skaičiaus matavimo rezultatai. Buvo nustatyta, kad maždaug 20 naudotojų dydžio sistema veiktų be problemų su "CPU: 1core", "memory: 512MB" ir "SSD: 25GB".
Tyrimas grindžiamas prielaida, kad jokia kita programinė įranga neveikia ribinio našumo režimu. Rekomenduojama pasirinkti specifikaciją su tam tikra laisve, nes tai yra ribinė vertė.
Dėkojame, kad žiūrėjote iki pabaigos.
■INFORMATION
Spustelėkite čia, kad pereitumėte į viršutinį puslapį su informacija.
■PROFILE
Spustelėkite čia, kad pamatytumėte profilį.
■Kontaktinė informacija.
Jei turite klausimų apie straipsnį, susisiekite su mumis čia.