Es izmērīju maksimālo WEB/AP serveru (Apache un Tomcat) skaitu, ko var apstrādāt vienlaicīgi, izmantojot VPS nomas serveri.
Publikācijas datums:2021. gada 1. janvāris.
INFOMARTION > Es izmērīju maksimālo WEB/AP serveru (Apache un Tomcat) skaitu, ko var apstrādāt vienlaicīgi, izmantojot VPS nomas serveri.
Pārskats.
Esmu izmērījis maksimālo gadījumu skaitu, ko WEB/AP serveri (Apache un Tomcat) var apstrādāt vienlaicīgi, un vēlos uzrakstīt par rezultātiem. Mēs interesējāmies par maksimālo apkalpojamo pieprasījumu skaitu, tāpēc veicām aptauju. Izmantojiet to kā atsauci, izvēloties VPS servera specifikācijas.
Šoreiz mērījumi tika veikti ar WEB/AP serveriem (Apache un Tomcat), bet tālāk rakstā ir sniegta informācija par mērījumiem tikai ar WEB (Apache) serveri.
Satura rādītājs
1. mērījumi
1-1. Mērījumu vide
Vide, kurā tiks veikti mērījumi, ir šāda.
■Nomas servera informācija
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Servera informācija
OS | CentOS 7.4 64bit |
---|---|
Tīmekļa serveris | Apache HTTP Server 2.4.41 |
AP serveris | Apache Tomcat 9.0.27 |
DB serveris | PostgreSQL 10.2 |
Java | OpenJDK 11 |
1-2. Mērīšanas metode
Es gribētu to izmērīt, izmantojot JMeter. JMeter ir slodzes mērīšanas rīks, kas darbojas Java vidē. Šis rīks ļauj vienlaicīgi izpildīt lielu skaitu pieprasījumu. Mēs vēlamies pakāpeniski palielināt vienlaicīgo pieprasījumu skaitu, izmantojot JMeter, un palielināt slodzi, līdz apstrādi vairs nevar apstrādāt.
Īpašie nosacījumi ir šādi.
- pieprasījuma intervāls・・・5 sek.
- Vienlaicīgu pieprasījumu skaits・・・10 gadījumi.(Mērījumus pakāpeniski palielināja par 10 gadījumiem katrā.)
- Laika mērīšana・・・60 sekundes.
Mērīšanas laiks ir "60 sekundes" un pieprasījuma intervāls "5 sekundes", tāpēc jūs vēlaties atkārtoti piekļūt sistēmai 12 reizes (60÷5).
1-3. mērījumu rezultāts
Galu galā daudzus cilvēkus interesē secinājums par to, kādas specifikācijas serveris var apstrādāt un cik daudz tas var apstrādāt, tāpēc es vēlētos vispirms izklāstīt secinājumu.
CPU:2core memory:1GB SSD:50GB | Vienlaikus var apstrādāt līdz 80 pieprasījumiem |
---|
Šī mērījuma rezultāti parādīja iepriekš minēto. No iepriekšminētajiem rezultātiem var secināt sekojošo. Mēģiniet to izmantot kā kritēriju, izvēloties servera specifikācijas.
CPU:1core memory:512MB SSD:25GB | Vienlaikus var apstrādāt līdz 20 pieprasījumiem. |
---|---|
CPU:2core memory:1GB SSD:50GB | Vienlaikus var apstrādāt līdz 80 pieprasījumiem |
CPU:3core memory:2GB SSD:100GB | Vienlaikus var apstrādāt līdz 200 pieprasījumiem. |
Tika konstatēts, ka sistēma ar aptuveni 20 lietotāju lielumu darbosies bez problēmām ar "CPU: 1core", "memory: 512MB" un "SSD: 25GB".
2. Detalizēta informācija par mērījumu rezultātiem
Mērījumu rezultātus esam aprakstījuši iepriekš, bet, ja jūs interesē, kādus rezultātus esam aprakstījuši, lūdzu, pārbaudiet arī sīkāku informāciju par mērījumu rezultātiem, kas tiks aprakstīti turpmāk.
2-1. WEB/AP servera (Apache, Tomcat) mērījumi
Pieprasījums tika izmests scenārijā, kad lietotājs piesakās no pieteikšanās ekrāna un pēc pieteikšanās tiek parādīts saraksta ekrāns. Starp citu, ekrāns ir izveidots, izmantojot Spring ietvaru, tostarp autentifikācijas funkciju.
Mērījumi parādīja šādus rezultātus.
- 10 vienlaicīgiem pieprasījumiem⇒OK
- Par 20 vienlaicīgiem pieprasījumiem⇒OK
- 30 vienlaicīgiem pieprasījumiem⇒OK
- Par 40 vienlaicīgiem pieprasījumiem⇒OK
- 50 vienlaicīgiem pieprasījumiem⇒OK
- Par 60 vienlaicīgiem pieprasījumiem⇒OK
- 70 vienlaicīgiem pieprasījumiem⇒OK
- 80 vienlaicīgiem pieprasījumiem⇒OK
- 90 vienlaicīgiem pieprasījumiem⇒NG
Kļūda pie 90. gadījuma. Cēlonis bija savienojuma kļūda ar Apache. Servera stāvoklis šajā laikā bija šāds.
- Procesora noslodze・・・26%
- atmiņas izmantošana・・・100%
Šķērslis bija pilnīgs atmiņas trūkums.
Nedaudz lieliskākiem interesentiem Apache Multi-Processing Module (MPM) konfigurācija ir šāda. MPM ir vienkārši izskaidrojams kā iestatījums, cik daudz Apache ir atļauts apstrādāt paralēli.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Interesējošais "MaxRequestWorkers" iestatījums ir "250". Tas ir iestatījums maksimālajam lietu skaitam, ko Apache var apstrādāt vienlaicīgi. '250', tātad maksimāli paralēli varēja apstrādāt 250 gadījumus, bet, aplūkojot atmiņas izmantošanu, katram gadījumam tika izmantoti aptuveni 8 MB atmiņas.
Šķita, ka Java izmanto 320MB atmiņas (248M par kaudzes un 72M par metaspace) un Apache 640MB atmiņas (8M x 80 procesi), un, lai gan Apache MPM iestatījumu vērtība ir "250", šķita, ka tas nevarēja izveidot vairāk nekā "80" procesus.
※Serverī ir 1G atmiņas, tātad kopējā Apache un Java atmiņa ir 960 MB, kas ir gandrīz uz augšējās robežas.
AP serveris (Java puse) darbojās labi, tāpēc vājā vieta bija WEB serveris (Apache).
Kad Apache un Tomcat ir instalēti un darbojas, mēs konstatējām, ka ar specifikācijām "CPU: 2core, atmiņa: 1GB, SSD: 50GB", vienlaicīgas piekļuves skaits "80" ir limits.(Tiek pieņemts, ka Java atmiņas iestatījumi ir 248M kaudzītei un 72M metaplašai.)
2-2. apsvērumi
No šejienes tas kļūst par apsvērumu, bet, tā kā atmiņa ir šaurais kakls, ja atmiņa tiek mainīta, palielināsies arī vienlaicīgi apstrādājamo procesu skaits.
【Klātesošie.(memory1GB)】
- memory:1GB
- Apache pavedienu skaits:80 gadījumi.
- Atmiņas patēriņš uz pavedienu Apache.:8MB
- Apache atmiņas patēriņš:640MB(80 gadījumi.×8MB)
- Tomcat atmiņas patēriņš:320MB(248 miljoni eiro HEAP.、72m metavietai.)
- Apache+Tomcat atmiņas patēriņš:960MB
【pēc izmaiņām(memory2GB)】
- memory:2GB
- Apache pavedienu skaits:200 gadījumi
- Atmiņas patēriņš uz pavedienu Apache.:8MB
- Apache atmiņas patēriņš:1600MB(200 gadījumi×8MB)
- Tomcat atmiņas patēriņš:320MB(248 miljoni eiro HEAP.、72m metavietai.)
- Apache+Tomcat atmiņas patēriņš:1920MB
Izmantojot 2 GB atmiņas, var būt iespējams vienlaicīgi apstrādāt 200 lietas. Ja atmiņa tiek palielināta līdz 3 GB, šķiet, ka var veikt lielāku vienlaicīgu apstrādi, taču Apache MPM "MaxRequestWorkers (maksimālais vienlaicīgi apstrādājamo lietu skaits)" ir "250", tāpēc, ja atmiņa tiks palielināta vēl vairāk, būs nepieciešams veikt arī šo iestatījumu. Var būt nepieciešama arī Java atmiņas regulēšana. Un otrādi, ja atmiņa tiek samazināta uz pusi, tas būtu šādi.
【pēc izmaiņām(memory512GB)】
- memory:512GB
- Apache pavedienu skaits:20 gadījumi
- Atmiņas patēriņš uz pavedienu Apache.:8MB
- Apache atmiņas patēriņš:160MB(20 gadījumi×8MB)
- Tomcat atmiņas patēriņš:320MB(248 miljoni eiro HEAP.、72m metavietai.)
- Apache+Tomcat atmiņas patēriņš:480MB
3. kopsavilkums
Aprakstīti rezultāti, kas iegūti, mērot maksimālo gadījumu skaitu, ko WEB/AP serveri (Apache un Tomcat) var apstrādāt vienlaicīgi. Tika konstatēts, ka sistēma ar aptuveni 20 lietotāju lielumu darbosies bez problēmām ar "CPU: 1core", "memory: 512MB" un "SSD: 25GB".
Apsekojuma pamatā ir pieņēmums, ka neviena cita programmatūra nedarbojas ar minimālu veiktspēju. Ieteicams izvēlēties specifikāciju ar nelielu rezervi, jo tā ir robežvērtība.
Paldies, ka noskatījāties līdz beigām.