Ma mõõtsin maksimaalset arvu WEB/AP servereid (Apache ja Tomcat), mida VPS rendiserveri abil saab korraga hallata.


Avaldamise kuupäev:1. jaanuar 2021.



INFOMARTION > Ma mõõtsin maksimaalset arvu WEB/AP servereid (Apache ja Tomcat), mida VPS rendiserveri abil saab korraga hallata.

Ülevaade.

Olen mõõtnud maksimaalset arvu juhtumeid, mida WEB/AP serverid (Apache ja Tomcat) suudavad korraga töödelda, ja tahaksin kirjutada tulemustest. Meid huvitas maksimaalne teenindatavate taotluste arv, seega viisime läbi küsitluse. Kasutage seda VPS-serveri spetsifikatsioonide valimisel.

Seekord viidi mõõtmised läbi WEB/AP-serveritega (Apache ja Tomcat), kuid palun vaadake allpool olevat artiklit ainult WEB (Apache) mõõtmiste kohta.

Ma mõõtsin maksimaalset arvu juhtumeid, mida veebiserver (Apache) suudab VPS-i rendiserveri abil üheaegselt käsitleda.

Sisukord

  1. mõõtmine
  2. Mõõtmistulemuste üksikasjad
  3. kokkuvõte

1. mõõtmine

1-1. Mõõtmiskeskkond

Järgnevalt on esitatud keskkond, milles mõõtmisi tehakse.

■Rendiserveri teave

CPU2core
memory1GB
SSD50GB

■Teave serveri kohta

OSCentOS 7.4 64bit
VeebiserverApache HTTP Server 2.4.41
AP serverApache Tomcat 9.0.27
DB serverPostgreSQL 10.2
JavaOpenJDK 11

1-2. Mõõtmismeetod

Tahaksin seda mõõta JMeteri abil. JMeter on koormuse mõõtmise tööriist, mis töötab Java's. Tööriist võimaldab korraga esitada suure hulga taotlusi. Soovime JMeteri abil järk-järgult suurendada samaaegsete päringute arvu ja suurendada koormust, kuni töötlemisega ei saa enam hakkama.

Eritingimuste hulka kuuluvad.

  • taotluste esitamise intervall・・・5 sek.
  • Samaaegsete taotluste arv・・・10 juhtumit.(Mõõtmisi suurendati järk-järgult 10 juhtumi kaupa.)
  • Aja mõõtmine・・・60 sekundit.

Mõõtmisaeg on "60 sekundit" ja päringu intervall "5 sekundit", seega soovite korduvalt 12 korda (60÷5) süsteemi siseneda.

1-3. mõõtmistulemus

Lõpuks on paljud inimesed huvitatud järeldusest, milliste spetsifikatsioonidega ja kui palju server suudab hakkama saada, nii et ma tahaksin kõigepealt esitada järelduse.

CPU:2core
memory:1GB
SSD:50GB
Üheaegselt saab töödelda kuni 80 taotlust

Selle mõõtmise tulemused näitasid ülaltoodut. Ülaltoodud tulemustest võib järeldada järgmist. Proovige kasutada seda kriteeriumina serveri spetsifikatsioonide valimisel.

CPU:1core
memory:512MB
SSD:25GB
Üheaegselt saab töödelda kuni 20 taotlust.
CPU:2core
memory:1GB
SSD:50GB
Üheaegselt saab töödelda kuni 80 taotlust
CPU:3core
memory:2GB
SSD:100GB
Üheaegselt saab töödelda kuni 200 taotlust.

Leiti, et süsteem, mille suurus on umbes 20 kasutajat, töötab probleemivabalt, kui kasutada "protsessor: 1 tuum", "mälu: 512 MB" ja "SSD: 25 GB".

2. Mõõtmistulemuste üksikasjad

Me oleme mõõtmistulemusi varem kirjeldanud, kuid kui teid huvitab, milliseid tulemusi me oleme kirjeldanud, siis vaadake ka mõõtmistulemuste üksikasju, mida kirjeldatakse edaspidi.

2-1. WEB/AP serveri (Apache, Tomcat) mõõtmised

Taotlus esitati stsenaariumis, kus kasutaja logib sisse sisselogimisekraanilt ja pärast sisselogimist kuvatakse nimekirja ekraan. Muide, ekraan on ehitatud kasutades Springi raamistikku, sealhulgas autentimisfunktsiooni.

Mõõtmised näitasid järgmisi tulemusi.

  • 10 samaaegse taotluse puhul⇒OK
  • 20 samaaegse taotluse puhul⇒OK
  • 30 samaaegse taotluse puhul⇒OK
  • 40 samaaegse taotluse puhul⇒OK
  • 50 samaaegse taotluse puhul⇒OK
  • 60 samaaegse taotluse puhul⇒OK
  • 70 samaaegse taotluse puhul⇒OK
  • 80 samaaegse taotluse puhul⇒OK
  • 90 samaaegse taotluse puhul⇒NG

Viga tekkis 90. juhtumi puhul. Põhjuseks oli Apache'i ühendusvea. Sel ajal oli serveri seisukord järgmine.

  • CPU kasutamine・・・26%
  • mälu kasutamine・・・100%

Mälu täielik puudumine oli kitsaskohaks.

Veidi nohiklikumate jaoks on Apache Multi-Processing Module (MPM) konfiguratsioon järgmine. MPM on lihtsalt selgitatud kui seade, millega määratakse, kui palju Apache'ile lubatakse paralleelselt töödelda.

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

Huvipakkuv seade on "MaxRequestWorkers" jaoks "250". See on maksimaalne arv juhtumeid, mida Apache saab korraga töödelda. '250', nii et 250 juhtumit saab maksimaalselt paralleelselt töödelda, kuid kui vaadata mälukasutust, siis kasutati umbes 8 MB mälu ühe juhtumi kohta.

Näis, et Java kasutab 320MB mälu (248M kuhja ja 72M metaruumi jaoks) ja Apache 640MB mälu (8M x 80 protsessi), ja kuigi Apache'i MPM-i seadistuse väärtus on '250', näis, et ta ei saa luua rohkem kui '80' protsessi.
※Serveril on 1G mälu, seega on Apache'i ja Java mälu kokku 960MB, mis on peaaegu ülemine piir.

AP server (Java pool) töötas hästi, nii et kitsaskohaks oli WEB server (Apache).

Kui Apache ja Tomcat on paigaldatud ja töötab, leidsime, et spetsifikatsioonide "CPU: 2core, mälu: 1GB, SSD: 50GB" puhul on samaaegsete ligipääsude arv "80" piiriks.(Eelduseks on, et Java mälusätted on 248M kuhja jaoks ja 72M metaruumi jaoks.)

2-2. tasu

Siit edasi muutub see kaalutluseks, kuid kuna mälu on kitsaskoht, siis mälu muutmisel suureneb ka samaaegselt töödeldavate protsesside arv.

【Kohal.(memory1GB)】

  • memory:1GB
  • Apache niitide arv:80 juhtumit.
  • Apache'i mälukulu niidi kohta.:8MB
  • Apache mälu tarbimine:640MB(80 juhtumit.×8MB)
  • Tomcat mälu tarbimine:320MB(248 miljonit eurot HEAPi jaoks.、72m metaspace'i puhul.)
  • Apache+Tomcat mälu tarbimine:960MB

【pärast muutust(memory2GB)】

  • memory:2GB
  • Apache niitide arv:200 juhtumit
  • Apache'i mälukulu niidi kohta.:8MB
  • Apache mälu tarbimine:1600MB(200 juhtumit×8MB)
  • Tomcat mälu tarbimine:320MB(248 miljonit eurot HEAPi jaoks.、72m metaspace'i puhul.)
  • Apache+Tomcat mälu tarbimine:1920MB

2 GB mälu korral võib olla võimalik töödelda korraga 200 juhtumit. Kui mälu suurendatakse 3 GB-ni, tundub, et samaaegset töötlemist saab teha rohkem, kuid Apache'i MPM-i "MaxRequestWorkers (maksimaalne samaaegselt töödeldavate juhtumite arv)" on "250", nii et ka siin on vaja häälestamist, kui mälu veelgi suurendatakse. Vajalik võib olla ka Java-mälu häälestamine. Seevastu, kui mälu vähendatakse poole võrra, oleks see järgmine.

【pärast muutust(memory512GB)】

  • memory:512GB
  • Apache niitide arv:20 juhtumit
  • Apache'i mälukulu niidi kohta.:8MB
  • Apache mälu tarbimine:160MB(20 juhtumit×8MB)
  • Tomcat mälu tarbimine:320MB(248 miljonit eurot HEAPi jaoks.、72m metaspace'i puhul.)
  • Apache+Tomcat mälu tarbimine:480MB

3. kokkuvõte

Kirjeldatakse WEB/AP-serverite (Apache ja Tomcat) poolt korraga töödeldavate juhtumite maksimaalse arvu mõõtmise tulemusi. Leiti, et süsteem, mille suurus on umbes 20 kasutajat, töötab probleemivabalt, kui kasutada "protsessor: 1 tuum", "mälu: 512 MB" ja "SSD: 25 GB".

Uuring põhineb eeldusel, et ükski teine tarkvara ei tööta marginaalse jõudlusega. Soovitatav on valida spetsifikatsioon, milles on veidi mänguruumi, kuna tegemist on marginaalse väärtusega.

Aitäh, et vaatasite kuni lõpuni.