Ik heb het maximum aantal gevallen gemeten dat de webserver (Apache) tegelijk kan verwerken met een VPS huurserver.
Datum van publicatie:31 december 2020.
INFOMARTION > Ik heb het maximum aantal gevallen gemeten dat de webserver (Apache) tegelijk kan verwerken met een VPS huurserver.
Overzicht.
Ik heb het maximum aantal gevallen gemeten dat de webserver (Apache) tegelijk kan verwerken, en ik wil graag over de resultaten schrijven. Wij waren nieuwsgierig naar het maximum aantal verzoeken dat kon worden geserveerd, dus hebben wij een enquête gehouden. Gebruik dit als referentie voor het selecteren van VPS server specificaties.
Deze keer zijn alleen metingen verricht op de WEB (Apache), maar voor metingen op de WEB/AP-servers (Apache en Tomcat) wordt verwezen naar het onderstaande artikel.
Inhoudsopgave
- meting
- 1-1. Meetomgeving
- 1-2. Meetmethode
- 1-3. meetresultaat
- Details van de meetresultaten
- 2-1. WEB-server (Apache) metingen
- 2-2. overweging
- samenvatting
1. meting
1-1. Meetomgeving
De omgeving waarin de metingen zullen worden verricht, is de volgende.
■Informatie over de huurserver
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Server informatie
OS | CentOS 7.4 64bit |
---|---|
Webserver | Apache HTTP Server 2.4.41 |
1-2. Meetmethode
Ik zou dit willen meten met JMeter. JMeter is een instrument voor het meten van belasting dat in Java draait. Met dit instrument kan een groot aantal verzoeken tegelijk worden ingediend. We willen het aantal gelijktijdige verzoeken geleidelijk opvoeren met JMeter en de belasting opvoeren tot de verwerking niet langer kan worden verwerkt.
Specifieke voorwaarden zijn.
- aanvraaginterval・・・5 seconden.
- Aantal gelijktijdige verzoeken・・・10 kisten.(De metingen werden geleidelijk opgevoerd met telkens 10 gevallen.)
- Het meten van tijd・・・60 seconden.
De meettijd is "60 seconden" en het verzoekinterval "5 seconden", zodat u 12 keer (60 ÷ 5) herhaaldelijk toegang wilt krijgen tot het systeem.
1-3. meetresultaat
Uiteindelijk zijn veel mensen geïnteresseerd in de conclusie van welke specs de server aankan en hoeveel hij aankan, dus wil ik graag eerst de conclusie vermelden.
CPU:2core memory:1GB SSD:50GB | Er kunnen maximaal 120 gelijktijdige verzoeken worden verwerkt. |
---|
De resultaten van deze meting toonden het bovenstaande aan. Uit bovenstaande resultaten kan het volgende worden afgeleid. Probeer dit als een criterium te gebruiken bij het kiezen van serverspecificaties.
CPU:1core memory:512MB SSD:25GB | Er kunnen maximaal 60 gelijktijdige verzoeken worden verwerkt. |
---|---|
CPU:2core memory:1GB SSD:50GB | Er kunnen maximaal 120 gelijktijdige verzoeken worden verwerkt. |
CPU:3core memory:2GB SSD:100GB | Er kunnen maximaal 240 gelijktijdige verzoeken worden verwerkt. |
Zelfs met specificaties van "CPU: 1core", "geheugen: 512MB" en "SSD: 25GB", bleek een systeem van ongeveer 60 mensen zonder problemen te kunnen werken.
2. Details van de meetresultaten
Wij hebben de meetresultaten eerder beschreven, maar als u geïnteresseerd bent in wat voor resultaten wij hebben beschreven, kunt u ook de details van de meetresultaten bekijken die in de toekomst zullen worden beschreven.
2-1. WEB-server (Apache) metingen
Herhaalde verzoeken werden tegen pagina's gegooid die in HTML waren gemaakt. Dit is een eenvoudige pagina zonder PHP verwerking of JavaScript complexiteit.
Metingen gaven de volgende resultaten.
- Voor 10 gelijktijdige verzoeken⇒OK
- Voor 20 gelijktijdige verzoeken⇒OK
- Voor 30 gelijktijdige verzoeken⇒OK
- Voor 40 gelijktijdige verzoeken⇒OK
- Voor 50 gelijktijdige verzoeken⇒OK
- Voor 60 gelijktijdige verzoeken⇒OK
- Voor 70 gelijktijdige verzoeken⇒OK
- Voor 80 gelijktijdige verzoeken⇒OK
- Voor 90 gelijktijdige verzoeken⇒OK
- Voor 100 gelijktijdige verzoeken⇒OK
- 110 gelijktijdige verzoeken⇒OK
- Voor 120 gelijktijdige verzoeken⇒OK
- Voor 130 gelijktijdige verzoeken⇒NG
Er is een fout opgetreden bij de 130e zaak. De oorzaak was een verbindingsfout met Apache. De toestand van de server was op dat moment als volgt.
- CPU-gebruik・・・26%
- geheugengebruik・・・100%
Een totaal gebrek aan geheugen was het knelpunt.
Voor de iets meer geeky, de Apache Multi-Processing Module (MPM) configuratie is als volgt. MPM wordt eenvoudig uitgelegd als de instelling van hoeveel Apache parallel mag verwerken.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
De instelling die van belang is, is "250" voor "MaxRequestWorkers". Dit is een instelling voor het maximum aantal zaken dat Apache tegelijkertijd kan verwerken. '250', zodat 250 gevallen maximaal parallel verwerkt konden worden, maar kijkend naar het geheugengebruik, werd per geval ongeveer 8 MB geheugen gebruikt.
Het leek 960 MB geheugen te gebruiken (8M x 120 processen) en de instelwaarde was '250', maar het leek erop dat het niet mogelijk was om meer dan '120' processen aan te maken.
※Het geheugen van de server zit bijna aan zijn limiet van 1G.
Bij de eigenlijke exploitatie van de server, als ook PHP en Java worden meegerekend, ligt de limiet rond de 100 gevallen, en als er ruimte is, kunnen 80 gevallen tegelijk parallel worden verwerkt.
Wanneer alleen Apache is geïnstalleerd en draait, met de specificaties "CPU: 2core, geheugen: 1GB, SSD: 50GB", bleek het aantal gelijktijdige toegangen "120" de limiet te zijn.
2-2. overweging
Vanaf hier wordt het een afweging, maar aangezien geheugen de bottleneck is, zal, als het geheugen wordt gewijzigd, het aantal processen dat gelijktijdig kan worden verwerkt, ook toenemen.
【Aanwezig.(memory1GB)】
- memory:1GB
- Aantal Apache threads:120 gevallen
- Geheugenverbruik per thread in Apache.:8MB
- Apache geheugenverbruik:960MB(120 gevallen×8MB)
【na de verandering(memory2GB)】
- memory:2GB
- Aantal Apache threads:240 gevallen.
- Geheugenverbruik per thread in Apache.:8MB
- Apache geheugenverbruik:1920MB(240 gevallen.×8MB)
Als het geheugen wordt verhoogd tot 2 GB, kan het aantal gevallen worden verdubbeld tot ongeveer 240 tegelijk. Als het geheugen wordt verhoogd naar 3 GB, lijkt het erop dat er meer gelijktijdige verwerking kan worden gedaan, maar de "MaxRequestWorkers (maximum aantal zaken dat gelijktijdig kan worden verwerkt)" van Apache's MPM is "250", dus afstemming hier zal ook nodig zijn als het geheugen verder wordt verhoogd. Omgekeerd, als het geheugen wordt gehalveerd, zou het als volgt zijn.
【na de verandering(memory512GB)】
- memory:512GB
- Aantal Apache threads:60 kisten.
- Geheugenverbruik per thread in Apache.:8MB
- Apache geheugenverbruik:480MB(60 kisten.×8MB)
3. samenvatting
Wij hebben het maximumaantal gevallen gemeten dat de webserver (Apache) tegelijkertijd kan verwerken. Er werd vastgesteld dat een systeem van ongeveer 60 mensen zonder problemen kon werken met "CPU: 1core", "geheugen: 512MB" en "SSD: 25GB".
Het onderzoek is gebaseerd op de veronderstelling dat geen andere software tegen marginale prestaties draait. Het verdient aanbeveling een specificatie met enige speelruimte te kiezen, aangezien het om een marginale waarde gaat.
Bedankt voor het kijken tot het einde.
■INFORMATION
Klik hier om naar de bovenste pagina van INFORMATIE te gaan.
■PROFILE
■Contactgegevens.
Voor vragen over het artikel kunt u hier contact met ons opnemen.