Jeg har målt det maksimale antal WEB/AP-servere (Apache og Tomcat), som kan håndtere på samme tid ved hjælp af en VPS-lejeserver.


Udgivelsesdato:1. januar 2021.



INFOMARTION > Jeg har målt det maksimale antal WEB/AP-servere (Apache og Tomcat), som kan håndtere på samme tid ved hjælp af en VPS-lejeserver.

Oversigt.

Jeg har målt det maksimale antal sager, som WEB/AP-serverne (Apache og Tomcat) kan behandle på samme tid, og jeg vil gerne skrive om resultaterne. Vi var nysgerrige efter at vide, hvor mange anmodninger der maksimalt kunne betjenes, så vi foretog en undersøgelse. Brug dette som en reference til at vælge specifikationer for VPS-servere.

Denne gang blev der foretaget målinger på WEB/AP-servere (Apache og Tomcat), men se venligst artiklen nedenfor for målinger kun på WEB-serveren (Apache).

Jeg har målt det maksimale antal tilfælde, som webserveren (Apache) kan håndtere samtidigt ved hjælp af en VPS-lejeserver.

Indholdsfortegnelse

  1. måling
  2. Detaljerede oplysninger om måleresultater
  3. resumé

1. måling

1-1. Miljø for måling

I det følgende beskrives de omgivelser, hvor målingerne vil blive foretaget.

■Oplysninger om udlejningsserver

CPU2core
memory1GB
SSD50GB

■Serveroplysninger

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

1-2. Målemetode

Jeg vil gerne måle dette ved hjælp af JMeter. JMeter er et værktøj til belastningsmåling, der kører i Java. Værktøjet gør det muligt at sende et stort antal anmodninger på samme tid. Vi vil gerne gradvist øge antallet af samtidige anmodninger ved hjælp af JMeter og øge belastningen, indtil behandlingen ikke længere kan håndteres.

Specifikke betingelser omfatter.

  • anmode om interval・・・5 sek.
  • Antal samtidige anmodninger・・・10 tilfælde.(Målingerne blev gradvist forøget med 10 tilfælde hver.)
  • Måling af tid・・・60 sekunder.

Måletiden er "60 sekunder" og forespørgselsintervallet "5 sekunder", så du ønsker at få adgang til systemet 12 gange (60÷5) gentagne gange.

1-3. måleresultat

I sidste ende er mange mennesker interesseret i konklusionen om, hvilke specifikationer serveren kan håndtere, og hvor meget den kan håndtere, så jeg vil gerne sige konklusionen først.

CPU:2core
memory:1GB
SSD:50GB
Der kan behandles op til 80 samtidige anmodninger

Resultaterne af denne måling viste ovenstående. Ovenstående resultater tyder på, at der kan udledes følgende. Prøv at bruge dette som et kriterium, når du vælger serverspecifikationer.

CPU:1core
memory:512MB
SSD:25GB
Der kan behandles op til 20 samtidige anmodninger.
CPU:2core
memory:1GB
SSD:50GB
Der kan behandles op til 80 samtidige anmodninger
CPU:3core
memory:2GB
SSD:100GB
Der kan behandles op til 200 samtidige anmodninger.

Det blev konstateret, at et system med en størrelse på ca. 20 brugere ville fungere uden problemer med "CPU: 1core", "hukommelse: 512 MB" og "SSD: 25 GB".

2. Detaljerede oplysninger om måleresultater

Vi har beskrevet måleresultaterne tidligere, men hvis du er interesseret i, hvilke resultater vi har beskrevet, kan du også se nærmere oplysninger om måleresultaterne, som vil blive beskrevet i fremtiden.

2-1. Målinger af WEB/AP-server (Apache, Tomcat)

Anmodningen blev sendt i et scenarie, hvor brugeren logger ind fra login-skærmen, og når brugeren er logget ind, vises listen på skærmen. Skærmen er i øvrigt opbygget ved hjælp af Spring-rammen, herunder autentificeringsfunktionen.

Målingerne viste følgende resultater.

  • For 10 samtidige anmodninger⇒OK
  • For 20 samtidige anmodninger⇒OK
  • For 30 samtidige anmodninger⇒OK
  • For 40 samtidige anmodninger⇒OK
  • For 50 samtidige anmodninger⇒OK
  • For 60 samtidige anmodninger⇒OK
  • For 70 samtidige anmodninger⇒OK
  • For 80 samtidige anmodninger⇒OK
  • For 90 samtidige anmodninger⇒NG

Der er opstået en fejl i det 90. tilfælde. Årsagen var en forbindelsesfejl til Apache. Serverens tilstand på dette tidspunkt var som følger.

  • CPU-udnyttelse・・・26%
  • udnyttelse af hukommelse・・・100%

En fuldstændig mangel på hukommelse var flaskehalsen.

For de lidt mere nørdede kan du se her, hvordan Apaches MPM-modul (Multi-Processing Module) er konfigureret MPM forklares ganske enkelt som indstillingen af, hvor meget Apache har lov til at behandle parallelt.

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

Indstillingen af interesse er "250" for "MaxRequestWorkers". Dette er en indstilling for det maksimale antal sager, som Apache kan behandle på samme tid. '250', så der kunne behandles 250 sager maksimalt parallelt, men hvis man ser på hukommelsesforbruget, blev der brugt ca. 8 MB hukommelse pr. sag.

Java syntes at bruge 320 MB hukommelse (248 M til heap og 72 M til metaspace) og Apache 640 MB hukommelse (8 M x 80 processer), og selv om Apaches MPM-indstillingsværdi er "250", så det ud til, at den ikke kunne oprette mere end "80" processer.
※Serveren har 1 g hukommelse, så den samlede hukommelse for Apache og Java er 960 MB, hvilket næsten er den øvre grænse.

AP-serveren (Java-siden) fungerede fint, så flaskehalsen var WEB-serveren (Apache).

Når Apache og Tomcat er installeret og kører, fandt vi ud af, at med specifikationerne "CPU: 2core, hukommelse: 1GB, SSD: 50GB", er antallet af samtidige adganger "80" grænsen.(Antagelsen er, at hukommelsesindstillingerne for Java er 248M for heap og 72M for metaspace.)

2-2. overvejelse

Herfra bliver det en overvejelse, men da hukommelsen er flaskehalsen, vil antallet af processer, der kan behandles samtidigt, også stige, hvis hukommelsen ændres.

【Til stede.(memory1GB)】

  • memory:1GB
  • Antal Apache-tråde:80 kasser.
  • Hukommelsesforbrug pr. tråd i Apache.:8MB
  • Apache hukommelsesforbrug:640MB(80 kasser.×8MB)
  • Tomcat-hukommelsesforbrug:320MB(248 mio. EUR til HEAP.、72m for metaspace.)
  • Hukommelsesforbrug for Apache+Tomcat:960MB

【efter ændringen(memory2GB)】

  • memory:2GB
  • Antal Apache-tråde:200 sager
  • Hukommelsesforbrug pr. tråd i Apache.:8MB
  • Apache hukommelsesforbrug:1600MB(200 sager×8MB)
  • Tomcat-hukommelsesforbrug:320MB(248 mio. EUR til HEAP.、72m for metaspace.)
  • Hukommelsesforbrug for Apache+Tomcat:1920MB

Med 2 GB hukommelse kan det være muligt at behandle 200 sager samtidig. Hvis hukommelsen øges til 3 GB, ser det ud til, at der kan udføres mere samtidig behandling, men "MaxRequestWorkers (maksimalt antal sager, der kan behandles samtidig)" for Apaches MPM er "250", så det vil også være nødvendigt at justere her, hvis hukommelsen øges yderligere. Det kan også være nødvendigt at justere Java-hukommelsen. Omvendt, hvis hukommelsen halveres, vil det være som følger.

【efter ændringen(memory512GB)】

  • memory:512GB
  • Antal Apache-tråde:20 sager
  • Hukommelsesforbrug pr. tråd i Apache.:8MB
  • Apache hukommelsesforbrug:160MB(20 sager×8MB)
  • Tomcat-hukommelsesforbrug:320MB(248 mio. EUR til HEAP.、72m for metaspace.)
  • Hukommelsesforbrug for Apache+Tomcat:480MB

3. resumé

Resultaterne af måling af det maksimale antal sager, som WEB/AP-serverne (Apache og Tomcat) kan behandle på samme tid, er beskrevet. Det blev konstateret, at et system med en størrelse på ca. 20 brugere ville fungere uden problemer med "CPU: 1core", "hukommelse: 512 MB" og "SSD: 25 GB".

Undersøgelsen er baseret på den antagelse, at ingen anden software kører med marginal ydeevne. Det anbefales at vælge en specifikation med en smule spillerum, da der er tale om en marginalværdi.

Tak, fordi du kiggede med til slutningen.




■INFORMATION

Klik her for at gå til den øverste side med oplysninger.


■PROFILE

Klik her for at se en profil.


■Kontaktoplysninger.

For forespørgsler om artiklen kan du kontakte os her.