Jag mätte det maximala antalet fall som webbservern (Apache) kan hantera samtidigt med hjälp av en hyrd VPS-server.


Datum för offentliggörande:31 december 2020.



INFOMARTION > Jag mätte det maximala antalet fall som webbservern (Apache) kan hantera samtidigt med hjälp av en hyrd VPS-server.

Översikt.

Jag har mätt det maximala antalet fall som webbservern (Apache) kan behandla samtidigt, och jag vill skriva om resultaten. Vi var nyfikna på det maximala antalet förfrågningar som kunde betjänas, så vi genomförde en undersökning. Använd detta som en referens när du väljer specifikationer för VPS-servrar.

Den här gången utfördes mätningarna endast på WEB-servrarna (Apache), men se artikeln nedan för mätningar på WEB/AP-servrarna (Apache och Tomcat).

Jag mätte det maximala antalet WEB/AP-servrar (Apache och Tomcat) som kan hantera samtidigt med hjälp av en hyrd VPS-server.

Innehållsförteckning

  1. mätning
  2. Uppgifter om mätresultat
  3. sammanfattning

1. mätning

1-1. Mätningsmiljö

Följande är den miljö där mätningarna kommer att utföras.

■Information om uthyrningsserver

CPU2core
memory1GB
SSD50GB

■Information om servern

OSCentOS 7.4 64bit
WebbserverApache HTTP Server 2.4.41

1-2. Mätmetod

Jag vill mäta detta med hjälp av JMeter. JMeter är ett verktyg för belastningsmätning som körs i Java. Verktyget gör det möjligt att skicka ett stort antal förfrågningar samtidigt. Vi vill gradvis öka antalet samtidiga förfrågningar med hjälp av JMeter och öka belastningen tills bearbetningen inte kan hanteras längre.

Specifika villkor är bland annat.

  • Intervall för begäran・・・5 sek.
  • Antal samtidiga förfrågningar・・・10 fall.(Mätningarna ökade gradvis med 10 fall vardera.)
  • Mätning av tid・・・60 sekunder.

Mätningstiden är "60 sekunder" och förfrågningsintervallet "5 sekunder", så du vill komma åt systemet 12 gånger (60÷5) upprepade gånger.

1-3. resultat av mätningen

I slutändan är många människor intresserade av slutsatsen om vilka specifikationer servern kan hantera och hur mycket den kan hantera, så jag skulle vilja säga slutsatsen först.

CPU:2core
memory:1GB
SSD:50GB
Upp till 120 samtidiga förfrågningar kan behandlas.

Resultaten av denna mätning visade ovanstående. Av ovanstående resultat kan man dra följande slutsatser. Försök att använda detta som ett kriterium när du väljer serverspecifikationer.

CPU:1core
memory:512MB
SSD:25GB
Upp till 60 samtidiga förfrågningar kan behandlas.
CPU:2core
memory:1GB
SSD:50GB
Upp till 120 samtidiga förfrågningar kan behandlas.
CPU:3core
memory:2GB
SSD:100GB
Upp till 240 samtidiga förfrågningar kan behandlas.

Även med specifikationer som "CPU: 1core", "minne: 512MB" och "SSD: 25GB" visade det sig att ett system med cirka 60 personer kunde fungera utan problem.

2. Uppgifter om mätresultat

Vi har beskrivit mätresultaten tidigare, men om du är intresserad av vilken typ av resultat vi har beskrivit kan du också läsa mer om mätresultaten som kommer att beskrivas i framtiden.

2-1. Mätningar av webbservern (Apache)

Upprepade förfrågningar skickades mot sidor som skapats i HTML. Detta är en enkel sida utan PHP-bearbetning eller JavaScript-komplexitet.

Mätningarna gav följande resultat.

  • För 10 samtidiga förfrågningar⇒OK
  • För 20 samtidiga förfrågningar⇒OK
  • För 30 samtidiga förfrågningar⇒OK
  • För 40 samtidiga förfrågningar⇒OK
  • För 50 samtidiga förfrågningar⇒OK
  • För 60 samtidiga förfrågningar⇒OK
  • För 70 samtidiga förfrågningar⇒OK
  • För 80 samtidiga förfrågningar⇒OK
  • För 90 samtidiga förfrågningar⇒OK
  • För 100 samtidiga förfrågningar⇒OK
  • 110 samtidiga förfrågningar⇒OK
  • För 120 samtidiga förfrågningar⇒OK
  • För 130 samtidiga förfrågningar⇒NG

Ett fel inträffade i det 130:e fallet. Orsaken var ett fel i anslutningen till Apache. Serverns tillstånd vid denna tidpunkt var följande.

  • CPU-användning・・・26%
  • minnesanvändning・・・100%

Flaskhalsen var en fullständig brist på minne.

För den lite mer nördige är konfigurationen av Apache Multi-Processing Module (MPM) följande. MPM är enkelt förklarat en inställning av hur mycket Apache tillåts bearbeta parallellt.

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

Den intressanta inställningen är "250" för "MaxRequestWorkers". Detta är en inställning för det maximala antalet ärenden som Apache kan behandla samtidigt. "250", så 250 fall kunde behandlas maximalt parallellt, men om man tittar på minnesanvändningen användes cirka 8 MB minne per fall.

Den verkade använda 960 MB minne (8M x 120 processer) och inställningsvärdet var "250", men det verkade som om det inte var möjligt att skapa fler än "120" processer.
※Serverns minne har nästan nått gränsen på 1 G.

När man använder servern, om PHP och Java också ingår, är gränsen cirka 100 ärenden, och om det finns utrymme kan 80 ärenden behandlas parallellt och parallellt.

När endast Apache är installerad och körs, med specifikationerna "CPU: 2core, minne: 1GB, SSD: 50GB", visade sig antalet samtidiga åtkomster "120" vara gränsen.

2-2. beaktande

Härifrån blir det ett övervägande, men eftersom minnet är flaskhalsen kommer antalet processer som kan behandlas samtidigt att öka om minnet ändras.

【Närvarande.(memory1GB)】

  • memory:1GB
  • Antal Apache-trådar:120 fall
  • Minnesförbrukning per tråd i Apache.:8MB
  • Apache minnesförbrukning:960MB(120 fall×8MB)

【efter ändringen(memory2GB)】

  • memory:2GB
  • Antal Apache-trådar:240 fall.
  • Minnesförbrukning per tråd i Apache.:8MB
  • Apache minnesförbrukning:1920MB(240 fall.×8MB)

Om minnet ökas till 2 GB kan det vara möjligt att fördubbla antalet ärenden till cirka 240 samtidigt. Om minnet ökas till 3 GB verkar det som om fler samtidiga bearbetningar kan göras, men "MaxRequestWorkers (maximalt antal ärenden som kan bearbetas samtidigt)" i Apaches MPM är "250", så det kommer också att bli nödvändigt att justera detta om minnet ökas ytterligare. Omvänt, om minnet halveras, skulle det se ut på följande sätt.

【efter ändringen(memory512GB)】

  • memory:512GB
  • Antal Apache-trådar:60 fall.
  • Minnesförbrukning per tråd i Apache.:8MB
  • Apache minnesförbrukning:480MB(60 fall.×8MB)

3. sammanfattning

Vi har mätt det maximala antalet fall som webbservern (Apache) kan behandla samtidigt. Det visade sig att ett system med cirka 60 personer kunde fungera utan problem med "CPU: 1core", "memory: 512MB" och "SSD: 25GB".

Undersökningen bygger på antagandet att ingen annan programvara körs med marginell prestanda. Det rekommenderas att välja en specifikation med lite spelrum eftersom det är ett marginellt värde.

Tack för att du tittade på till slutet.




■INFORMATION

Klicka här för att komma till den översta sidan med information.


■PROFILE

Klicka här för en profil.


■Kontaktuppgifter.

För frågor om artikeln, vänligen kontakta oss här.