Mittasin, kuinka monta WEB/AP-palvelinta (Apache ja Tomcat) voi käsitellä samanaikaisesti VPS-vuokrauspalvelimella.
Julkaisupäivä:1. tammikuuta 2021.
INFOMARTION > Mittasin, kuinka monta WEB/AP-palvelinta (Apache ja Tomcat) voi käsitellä samanaikaisesti VPS-vuokrauspalvelimella.
Yleiskatsaus.
Olen mitannut, kuinka monta tapausta WEB/AP-palvelimet (Apache ja Tomcat) voivat käsitellä samanaikaisesti, ja haluaisin kirjoittaa tuloksista. Olimme uteliaita palvelupyyntöjen enimmäismäärästä, joten teimme kyselyn. Käytä tätä viitteenä valitessasi VPS-palvelimen spesifikaatioita.
Tällä kertaa mittaukset suoritettiin WEB/AP-palvelimilla (Apache ja Tomcat), mutta katso alla oleva artikkeli, joka koskee mittauksia vain WEB-palvelimilla (Apache).
Sisällysluettelo
1. mittaus
1-1. Mittausympäristö
Seuraavassa esitetään ympäristö, jossa mittaukset tehdään.
■Vuokrauspalvelimen tiedot
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Palvelimen tiedot
OS | CentOS 7.4 64bit |
---|---|
Verkkopalvelin | Apache HTTP Server 2.4.41 |
AP-palvelin | Apache Tomcat 9.0.27 |
DB-palvelin | PostgreSQL 10.2 |
Java | OpenJDK 11 |
1-2. Mittausmenetelmä
Haluaisin mitata tämän JMeterin avulla. JMeter on kuormituksen mittaustyökalu, joka toimii Javassa. Työkalu mahdollistaa useiden pyyntöjen esittämisen samanaikaisesti. Haluaisimme asteittain lisätä samanaikaisten pyyntöjen määrää JMeterin avulla ja lisätä kuormitusta, kunnes käsittelyä ei voida enää hoitaa.
Erityisolosuhteisiin kuuluvat.
- pyyntöväli・・・5 sekuntia.
- Samanaikaisten pyyntöjen määrä・・・10 tapausta.(Mittaukset lisääntyivät vähitellen 10 tapauksella kutakin.)
- Ajan mittaaminen・・・60 sekuntia.
Mittausaika on "60 sekuntia" ja pyyntöväli "5 sekuntia", joten haluat käyttää järjestelmää 12 kertaa (60÷5) toistuvasti.
1-3. mittaustulos
Loppujen lopuksi monia ihmisiä kiinnostaa päätelmä siitä, mitä speksejä palvelin pystyy käsittelemään ja kuinka paljon se pystyy käsittelemään, joten haluaisin esittää päätelmän ensin.
CPU:2core memory:1GB SSD:50GB | Jopa 80 samanaikaista pyyntöä voidaan käsitellä |
---|
Tämän mittauksen tulokset osoittivat edellä esitetyn. Edellä esitettyjen tulosten perusteella voidaan päätellä seuraavaa. Yritä käyttää tätä kriteerinä, kun valitset palvelimen spesifikaatioita.
CPU:1core memory:512MB SSD:25GB | Enintään 20 samanaikaista pyyntöä voidaan käsitellä. |
---|---|
CPU:2core memory:1GB SSD:50GB | Jopa 80 samanaikaista pyyntöä voidaan käsitellä |
CPU:3core memory:2GB SSD:100GB | Jopa 200 samanaikaista pyyntöä voidaan käsitellä. |
Todettiin, että järjestelmä, jonka koko on noin 20 käyttäjää, toimii ongelmitta seuraavilla asetuksilla: "CPU: 1core", "muisti: 512MB" ja "SSD: 25GB".
2. Mittaustulosten yksityiskohdat
Olemme kuvailleet mittaustuloksia aiemmin, mutta jos olet kiinnostunut siitä, millaisia tuloksia olemme kuvailleet, tutustu myös mittaustulosten yksityiskohtiin, jotka kuvataan tulevaisuudessa.
2-1. WEB/AP-palvelin (Apache, Tomcat) mittaukset
Pyyntö heitetään skenaariossa, jossa käyttäjä kirjautuu sisään kirjautumisnäytöltä ja kirjautumisen jälkeen näytetään luettelonäyttö. Näyttö on muuten rakennettu käyttäen Spring-kehystä, mukaan lukien todennustoiminto.
Mittaukset osoittivat seuraavat tulokset.
- 10 samanaikaista pyyntöä varten⇒OK
- 20 samanaikaista pyyntöä varten⇒OK
- 30 samanaikaista pyyntöä varten⇒OK
- 40 samanaikaista pyyntöä varten⇒OK
- 50 samanaikaista pyyntöä varten⇒OK
- 60 samanaikaista pyyntöä varten⇒OK
- 70 samanaikaista pyyntöä varten⇒OK
- 80 samanaikaista pyyntöä varten⇒OK
- 90 samanaikaista pyyntöä varten⇒NG
Virhe tapahtui 90. tapauksessa. Syynä oli yhteysvirhe Apacheen. Palvelimen tila oli tällä hetkellä seuraava.
- CPU:n käyttöaste・・・26%
- muistin käyttö・・・100%
Pullonkaulana oli muistin täydellinen puute.
Hieman nörttimäisemmille Apachen moniprosessorimoduulin (MPM) kokoonpano on seuraava. MPM selitetään yksinkertaisesti asetuksena, jolla määritetään, kuinka paljon Apachen sallitaan käsitellä rinnakkain.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Kiinnostava asetus on "MaxRequestWorkers" -asetukseksi "250". Tämä on asetus sille, kuinka monta tapausta Apache voi käsitellä samanaikaisesti. '250', joten 250 tapausta voitiin käsitellä maksimissaan rinnakkain, mutta muistinkäyttöä tarkasteltaessa muistia käytettiin noin 8 Mt tapausta kohti.
Java näytti käyttävän 320 megatavua muistia (248 megatavua kasaan ja 72 megatavua metatilaan) ja Apache 640 megatavua muistia (8 megatavua x 80 prosessia), ja vaikka Apachen MPM-asetusarvo on '250', näytti siltä, että se ei voinut luoda enempää kuin '80' prosessia.
※Palvelimessa on 1G muistia, joten Apachen ja Javan kokonaismuisti on 960MB, mikä on melkein ylärajalla.
AP-palvelin (Java-puoli) toimi hyvin, joten pullonkaulana oli WEB-palvelin (Apache).
Kun Apache ja Tomcat on asennettu ja käynnissä, havaitsimme, että määrityksillä "CPU: 2core, muisti: 1GB, SSD: 50GB" samanaikaisten käyttökertojen määrä "80" on raja.(Oletuksena on, että Javan muistiasetukset ovat 248M kasalle ja 72M metatilalle.)
2-2. vastike
Tästä eteenpäin se tulee harkittavaksi, mutta koska muisti on pullonkaula, jos muistia muutetaan, samanaikaisesti käsiteltävien prosessien määrä kasvaa.
【Läsnä.(memory1GB)】
- memory:1GB
- Apache-säikeiden määrä:80 tapausta.
- Muistin kulutus säikeittäin Apachessa.:8MB
- Apachen muistin kulutus:640MB(80 tapausta.×8MB)
- Tomcatin muistin kulutus:320MB(248 miljoonaa euroa HEAP-ohjelmalle.、72 m metatilan osalta.)
- Apachen+Tomcatin muistin kulutus:960MB
【muutoksen jälkeen(memory2GB)】
- memory:2GB
- Apache-säikeiden määrä:200 tapausta
- Muistin kulutus säikeittäin Apachessa.:8MB
- Apachen muistin kulutus:1600MB(200 tapausta×8MB)
- Tomcatin muistin kulutus:320MB(248 miljoonaa euroa HEAP-ohjelmalle.、72 m metatilan osalta.)
- Apachen+Tomcatin muistin kulutus:1920MB
Kun muistia on 2 Gt, voi olla mahdollista käsitellä 200 tapausta samanaikaisesti. Jos muistia lisätään 3 Gt:iin, näyttää siltä, että samanaikaista käsittelyä voidaan tehdä enemmän, mutta Apachen MPM:n "MaxRequestWorkers (samanaikaisesti käsiteltävien tapausten enimmäismäärä)" on "250", joten viritys on tarpeen myös tässä tapauksessa, jos muistia lisätään edelleen. Myös Java-muistin viritys voi olla tarpeen. Vastaavasti, jos muisti puolitetaan, tilanne on seuraava.
【muutoksen jälkeen(memory512GB)】
- memory:512GB
- Apache-säikeiden määrä:20 tapausta
- Muistin kulutus säikeittäin Apachessa.:8MB
- Apachen muistin kulutus:160MB(20 tapausta×8MB)
- Tomcatin muistin kulutus:320MB(248 miljoonaa euroa HEAP-ohjelmalle.、72 m metatilan osalta.)
- Apachen+Tomcatin muistin kulutus:480MB
3. yhteenveto
Tulokset, jotka saatiin mitattaessa WEB/AP-palvelimien (Apache ja Tomcat) samanaikaisesti käsittelemien tapausten enimmäismäärää, kuvataan. Todettiin, että järjestelmä, jonka koko on noin 20 käyttäjää, toimii ongelmitta seuraavilla asetuksilla: "CPU: 1core", "muisti: 512MB" ja "SSD: 25GB".
Tutkimus perustuu olettamukseen, että mikään muu ohjelmisto ei toimi marginaalisella suorituskyvyllä. On suositeltavaa valita erittely, jossa on hieman liikkumavaraa, koska kyseessä on marginaalinen arvo.
Kiitos, että katsoitte loppuun asti.
■INFORMATION
Klikkaa tästä siirtyäksesi TIETOJEN yläsivulle.
■PROFILE
Klikkaa tästä saadaksesi profiilin.
■Yhteystiedot.