Mittasin maksimimäärän tapauksia, joita verkkopalvelin (Apache) voi käsitellä samanaikaisesti VPS-vuokrauspalvelimella.


Julkaisupäivä:31. joulukuuta 2020.



INFOMARTION > Mittasin maksimimäärän tapauksia, joita verkkopalvelin (Apache) voi käsitellä samanaikaisesti VPS-vuokrauspalvelimella.

Yleiskatsaus.

Olen mitannut maksimimäärän tapauksia, joita verkkopalvelin (Apache) voi 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 vain WEB-palvelimella (Apache), mutta katso alla oleva artikkeli WEB/AP-palvelimilla (Apache ja Tomcat) suoritetuista mittauksista.

Mittasin, kuinka monta WEB/AP-palvelinta (Apache ja Tomcat) voi käsitellä samanaikaisesti VPS-vuokrauspalvelimella.

Sisällysluettelo

  1. mittaus
  2. Mittaustulosten yksityiskohdat
  3. yhteenveto

1. mittaus

1-1. Mittausympäristö

Seuraavassa esitetään ympäristö, jossa mittaukset tehdään.

■Vuokrauspalvelimen tiedot

CPU2core
memory1GB
SSD50GB

■Palvelimen tiedot

OSCentOS 7.4 64bit
VerkkopalvelinApache HTTP Server 2.4.41

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 120 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 60 samanaikaista pyyntöä voidaan käsitellä.
CPU:2core
memory:1GB
SSD:50GB
Jopa 120 samanaikaista pyyntöä voidaan käsitellä.
CPU:3core
memory:2GB
SSD:100GB
Jopa 240 samanaikaista pyyntöä voidaan käsitellä.

Jopa seuraavilla määrityksillä: "CPU: 1 ydin", "muisti: 512 Mt" ja "SSD: 25 Gt", havaittiin, että noin 60 hengen järjestelmä pystyi toimimaan ongelmitta.

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-palvelimen (Apache) mittaukset

Toistuvia pyyntöjä heitettiin HTML-muodossa luotuja sivuja vastaan. Tämä on yksinkertainen sivu, jossa ei ole PHP-käsittelyä tai JavaScriptin monimutkaisuutta.

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⇒OK
  • 100 samanaikaista pyyntöä varten⇒OK
  • 110 samanaikaista pyyntöä⇒OK
  • 120 samanaikaista pyyntöä varten⇒OK
  • 130 samanaikaista pyyntöä varten⇒NG

Virhe tapahtui 130. tapauksessa. Syynä oli yhteysvirhe Apacheen. Palvelimen tila oli tällä hetkellä seuraava.

  • CPU:n käyttöaste・・・26%
  • muistin käyttöaste・・・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.

Se näytti käyttävän 960 Mt muistia (8M x 120 prosessia), ja asetusarvo oli '250', mutta näytti siltä, että ei ollut mahdollista luoda enempää kuin '120' prosessia.
※Palvelimen muisti on melkein 1G:n rajalla.

Kun palvelinta käytetään todellisuudessa, jos PHP ja Java ovat myös mukana, rajoitus on noin 100 tapausta, ja jos tilaa on, 80 tapausta voidaan käsitellä samanaikaisesti rinnakkain.

Kun vain Apache on asennettu ja käynnissä määrityksillä "CPU: 2core, muisti: 1GB, SSD: 50GB", samanaikaisten käyttökertojen määrä "120" osoittautui rajaksi.

2-2. vastike

Tästä se tulee harkittavaksi, mutta koska muisti on pullonkaula, jos muistia muutetaan, myös samanaikaisesti käsiteltävien prosessien määrä kasvaa.

【Läsnä.(memory1GB)】

  • memory:1GB
  • Apache-säikeiden määrä:120 tapausta
  • Muistin kulutus säikeittäin Apachessa.:8MB
  • Apachen muistin kulutus:960MB(120 tapausta×8MB)

【muutoksen jälkeen(memory2GB)】

  • memory:2GB
  • Apache-säikeiden määrä:240 tapausta.
  • Muistin kulutus säikeittäin Apachessa.:8MB
  • Apachen muistin kulutus:1920MB(240 tapausta.×8MB)

Jos muistia lisätään 2 Gt:iin, tapausten määrä voidaan ehkä kaksinkertaistaa noin 240:een yhtäaikaiseen tapaukseen. 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. Vastaavasti, jos muisti puolitetaan, tilanne on seuraava.

【muutoksen jälkeen(memory512GB)】

  • memory:512GB
  • Apache-säikeiden määrä:60 tapausta.
  • Muistin kulutus säikeittäin Apachessa.:8MB
  • Apachen muistin kulutus:480MB(60 tapausta.×8MB)

3. yhteenveto

Olemme mitanneet, kuinka monta tapausta verkkopalvelin (Apache) voi käsitellä samanaikaisesti. Todettiin, että noin 60 hengen järjestelmää voitiin käyttää ongelmitta "CPU: 1core", "muisti: 512MB" ja "SSD: 25GB" -asetuksilla.

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.