Am măsurat numărul maxim de cazuri pe care serverul web (Apache) le poate gestiona simultan folosind un server de închiriere VPS.


Data publicării:31 decembrie 2020.



INFOMARTION > Am măsurat numărul maxim de cazuri pe care serverul web (Apache) le poate gestiona simultan folosind un server de închiriere VPS.

Prezentare generală.

Am măsurat numărul maxim de cazuri pe care serverul web (Apache) le poate procesa în același timp și aș dori să scriu despre rezultate. Am fost curioși să aflăm care este numărul maxim de cereri care pot fi servite, așa că am efectuat un sondaj. Folosiți-o ca referință pentru a selecta specificațiile serverului VPS.

De data aceasta, măsurătorile au fost efectuate numai pe WEB (Apache), dar vă rugăm să consultați articolul de mai jos pentru măsurători pe serverele WEB/AP (Apache și Tomcat).

Am măsurat numărul maxim de servere WEB/AP (Apache și Tomcat) pe care le pot gestiona în același timp folosind un server VPS închiriat.

Cuprins

  1. măsurare
  2. Detalii privind rezultatele măsurătorilor
  3. rezumat

1. măsurare

1-1. Mediul de măsurare

În continuare este prezentat mediul în care se vor efectua măsurătorile.

■Informații despre serverul de închiriere

CPU2core
memory1GB
SSD50GB

■Informații despre server

OSCentOS 7.4 64bit
Server webApache HTTP Server 2.4.41

1-2. Metoda de măsurare

Aș dori să măsor acest lucru folosind JMeter. JMeter este un instrument de măsurare a sarcinii care rulează în Java. Instrumentul permite ca un număr mare de cereri să fie lansate în același timp. Am dori să creștem treptat numărul de cereri simultane folosind JMeter și să creștem sarcina până când procesarea nu mai poate fi gestionată.

Condițiile specifice includ.

  • interval de solicitare・・・5 sec.
  • Numărul de cereri simultane・・・10 cazuri.(Măsurătorile au crescut treptat cu 10 cazuri fiecare.)
  • Măsurarea timpului・・・60 de secunde.

Timpul de măsurare este de "60 de secunde", iar intervalul de solicitare este de "5 secunde", deci doriți să accesați sistemul de 12 ori (60÷5) în mod repetat.

1-3. rezultatul măsurătorii

În cele din urmă, mulți oameni sunt interesați de concluzia privind specificațiile pe care serverul le poate gestiona și cât de mult poate gestiona, așa că aș dori să prezint mai întâi concluzia.

CPU:2core
memory:1GB
SSD:50GB
Pot fi procesate până la 120 de cereri simultane.

Rezultatele acestei măsurători au arătat cele de mai sus. Rezultatele de mai sus sugerează că pot fi deduse următoarele. Încercați să folosiți acest criteriu atunci când alegeți specificațiile serverului.

CPU:1core
memory:512MB
SSD:25GB
Pot fi procesate până la 60 de cereri simultane.
CPU:2core
memory:1GB
SSD:50GB
Pot fi procesate până la 120 de cereri simultane.
CPU:3core
memory:2GB
SSD:100GB
Pot fi procesate până la 240 de cereri simultane.

Chiar și cu specificații de "CPU: 1 nucleu", "memorie: 512MB" și "SSD: 25GB", s-a constatat că un sistem de aproximativ 60 de persoane poate funcționa fără probleme.

2. Detalii privind rezultatele măsurătorilor

Am descris mai devreme rezultatele măsurătorilor, dar dacă vă interesează ce fel de rezultate am descris, vă rugăm să verificați și detaliile rezultatelor măsurătorilor care vor fi descrise în viitor.

2-1. Măsurătorile serverului WEB (Apache)

Cererile repetate au fost aruncate împotriva paginilor create în HTML. Aceasta este o pagină simplă, fără procesare PHP sau complexitate JavaScript.

Măsurătorile au arătat următoarele rezultate.

  • Pentru 10 cereri simultane⇒OK
  • Pentru 20 de cereri simultane⇒OK
  • Pentru 30 de cereri simultane⇒OK
  • Pentru 40 de cereri simultane⇒OK
  • Pentru 50 de cereri simultane⇒OK
  • Pentru 60 de cereri simultane⇒OK
  • Pentru 70 de cereri simultane⇒OK
  • Pentru 80 de cereri simultane⇒OK
  • Pentru 90 de cereri simultane⇒OK
  • Pentru 100 de cereri simultane⇒OK
  • 110 cereri simultane⇒OK
  • Pentru 120 de cereri simultane⇒OK
  • Pentru 130 de cereri simultane⇒NG

A apărut o eroare la cazul 130. Cauza a fost o eroare de conectare la Apache. Starea serverului în acest moment era următoarea.

  • Utilizare CPU・・・26%
  • rata de utilizare a memoriei・・・100%

Lipsa totală de memorie a fost cauza blocajului.

Pentru cei puțin mai pasionați, configurația Apache Multi-Processing Module (MPM) este următoarea. MPM este explicat pur și simplu ca fiind o setare a cât de mult poate procesa Apache în paralel.

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

Setarea de interes este "250" pentru "MaxRequestWorkers". Aceasta este o setare pentru numărul maxim de cazuri pe care Apache le poate procesa în același timp. "250", astfel încât 250 de cazuri au putut fi procesate în paralel la maximum, dar, dacă ne uităm la utilizarea memoriei, s-au folosit aproximativ 8 MB de memorie pentru fiecare caz.

Se pare că folosea 960 MB de memorie (8M x 120 de procese), iar valoarea de setare era "250", dar se pare că nu era posibil să se creeze mai mult de "120" procese.
※Memoria serverului este aproape de limita sa de 1G.

La operarea efectivă a serverului, dacă sunt incluse și PHP și Java, limita este de aproximativ 100 de cazuri, iar dacă există spațiu, pot fi procesate simultan în paralel 80 de cazuri.

Atunci când este instalat și rulează doar Apache, cu specificațiile "CPU: 2core, memorie: 1GB, SSD: 50GB", s-a constatat că numărul de accesări simultane "120" reprezintă limita.

2-2. considerație

De aici încolo, devine o chestiune de luat în considerare, dar cum memoria este gâtul de gâtul de la intrare, dacă memoria este modificată, numărul de procese care pot fi procesate concomitent va crește și el.

【Prezent.(memory1GB)】

  • memory:1GB
  • Numărul de fire Apache:120 de cazuri
  • Consumul de memorie pe fir de execuție în Apache.:8MB
  • Consumul de memorie Apache:960MB(120 de cazuri×8MB)

【după modificare(memory2GB)】

  • memory:2GB
  • Numărul de fire Apache:240 de cazuri.
  • Consumul de memorie pe fir de execuție în Apache.:8MB
  • Consumul de memorie Apache:1920MB(240 de cazuri.×8MB)

Dacă memoria este mărită la 2 GB, ar putea fi posibilă dublarea numărului de cazuri la aproximativ 240 de cazuri simultane. Dacă memoria este mărită la 3GB, se pare că se poate face mai multă procesare concomitentă, dar "MaxRequestWorkers (numărul maxim de cazuri care pot fi procesate concomitent)" din MPM Apache este "250", așa că va fi necesară o ajustare și aici dacă memoria va fi mărită în continuare. În schimb, dacă memoria este înjumătățită, ar fi după cum urmează.

【după modificare(memory512GB)】

  • memory:512GB
  • Numărul de fire Apache:60 de cazuri.
  • Consumul de memorie pe fir de execuție în Apache.:8MB
  • Consumul de memorie Apache:480MB(60 de cazuri.×8MB)

3. rezumat

Am măsurat numărul maxim de cazuri pe care serverul web (Apache) le poate procesa în același timp. S-a constatat că un sistem de aproximativ 60 de persoane poate funcționa fără probleme cu "CPU: 1 nucleu", "memorie: 512 MB" și "SSD: 25 GB".

Studiul se bazează pe ipoteza că niciun alt software nu rulează la o performanță marginală. Se recomandă să se aleagă o specificație cu o oarecare marjă de manevră, deoarece este o valoare marginală.

Vă mulțumim că ați urmărit până la sfârșit.