Es izmērīju maksimālo gadījumu skaitu, ko tīmekļa serveris (Apache) var apstrādāt vienlaicīgi, izmantojot VPS nomas serveri.


Publikācijas datums:2020. gada 31. decembris.



INFOMARTION > Es izmērīju maksimālo gadījumu skaitu, ko tīmekļa serveris (Apache) var apstrādāt vienlaicīgi, izmantojot VPS nomas serveri.

Pārskats.

Esmu izmērījis maksimālo gadījumu skaitu, ko tīmekļa serveris (Apache) var apstrādāt vienlaicīgi, un vēlos uzrakstīt par rezultātiem. Mēs interesējāmies par maksimālo apkalpojamo pieprasījumu skaitu, tāpēc veicām aptauju. Izmantojiet to kā atsauci, izvēloties VPS servera specifikācijas.

Šoreiz mērījumi tika veikti tikai WEB (Apache) serverī, bet par mērījumiem WEB/AP serveros (Apache un Tomcat) lasiet tālāk rakstā.

Es izmērīju maksimālo WEB/AP serveru (Apache un Tomcat) skaitu, ko var apstrādāt vienlaicīgi, izmantojot VPS nomas serveri.

Satura rādītājs

  1. mērījumi
  2. Sīkāka informācija par mērījumu rezultātiem
  3. kopsavilkums

1. mērījumi

1-1. Mērījumu vide

Vide, kurā tiks veikti mērījumi, ir šāda.

■Nomas servera informācija

CPU2core
memory1GB
SSD50GB

■Servera informācija

OSCentOS 7.4 64bit
Tīmekļa serverisApache HTTP Server 2.4.41

1-2. Mērīšanas metode

Es gribētu to izmērīt, izmantojot JMeter. JMeter ir slodzes mērīšanas rīks, kas darbojas Java vidē. Šis rīks ļauj vienlaicīgi izpildīt lielu skaitu pieprasījumu. Mēs vēlamies pakāpeniski palielināt vienlaicīgo pieprasījumu skaitu, izmantojot JMeter, un palielināt slodzi, līdz apstrādi vairs nevar apstrādāt.

Īpašie nosacījumi ir šādi.

  • pieprasījuma intervāls・・・5 sek.
  • Vienlaicīgu pieprasījumu skaits・・・10 gadījumi.(Mērījumus pakāpeniski palielināja par 10 gadījumiem katrā.)
  • Laika mērīšana・・・60 sekundes.

Mērīšanas laiks ir "60 sekundes" un pieprasījuma intervāls "5 sekundes", tāpēc jūs vēlaties atkārtoti piekļūt sistēmai 12 reizes (60÷5).

1-3. mērījumu rezultāts

Galu galā daudzus cilvēkus interesē secinājums par to, kādas specifikācijas serveris var apstrādāt un cik daudz tas var apstrādāt, tāpēc es vēlētos vispirms izklāstīt secinājumu.

CPU:2core
memory:1GB
SSD:50GB
Vienlaikus var apstrādāt līdz 120 pieprasījumiem.

Šī mērījuma rezultāti parādīja iepriekš minēto. No iepriekšminētajiem rezultātiem var secināt sekojošo. Mēģiniet to izmantot kā kritēriju, izvēloties servera specifikācijas.

CPU:1core
memory:512MB
SSD:25GB
Vienlaikus var apstrādāt līdz 60 pieprasījumiem.
CPU:2core
memory:1GB
SSD:50GB
Vienlaikus var apstrādāt līdz 120 pieprasījumiem.
CPU:3core
memory:2GB
SSD:100GB
Vienlaikus var apstrādāt līdz 240 pieprasījumiem.

Pat ar šādām specifikācijām: "CPU: 1kodols", "atmiņa: 512MB" un "SSD: 25GB", tika konstatēts, ka aptuveni 60 cilvēku sistēma var darboties bez problēmām.

2. Sīkāka informācija par mērījumu rezultātiem

Mērījumu rezultātus esam aprakstījuši iepriekš, bet, ja jūs interesē, kādus rezultātus mēs esam aprakstījuši, lūdzu, pārbaudiet arī mērījumu rezultātu informāciju, kas tiks aprakstīta turpmāk.

2-1. WEB servera (Apache) mērījumi

Atkārtoti pieprasījumi tika izmesti pret HTML formātā izveidotām lapām. Šī ir vienkārša lapa bez PHP apstrādes vai JavaScript sarežģītības.

Mērījumi parādīja šādus rezultātus.

  • 10 vienlaicīgiem pieprasījumiem⇒OK
  • Par 20 vienlaicīgiem pieprasījumiem⇒OK
  • 30 vienlaicīgiem pieprasījumiem⇒OK
  • Par 40 vienlaicīgiem pieprasījumiem⇒OK
  • 50 vienlaicīgiem pieprasījumiem⇒OK
  • Par 60 vienlaicīgiem pieprasījumiem⇒OK
  • 70 vienlaicīgiem pieprasījumiem⇒OK
  • 80 vienlaicīgiem pieprasījumiem⇒OK
  • Par 90 vienlaicīgiem pieprasījumiem⇒OK
  • Par 100 vienlaicīgiem pieprasījumiem⇒OK
  • 110 vienlaicīgi pieprasījumi⇒OK
  • Par 120 vienlaicīgiem pieprasījumiem⇒OK
  • Par 130 vienlaicīgiem pieprasījumiem⇒NG

Kļūda pie 130. lietas. Cēlonis bija savienojuma kļūda ar Apache. Servera stāvoklis šajā laikā bija šāds.

  • Procesora noslodze・・・26%
  • atmiņas izmantošanas ātrums・・・100%

Šķērslis bija pilnīgs atmiņas trūkums.

Nedaudz zinošākiem Apache Multi-Processing Module (MPM) konfigurācija ir šāda. MPM ir vienkārši izskaidrojams kā iestatījums, cik daudz Apache ir atļauts apstrādāt paralēli.

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

Interesējošais iestatījums "MaxRequestWorkers" ir "250". Tas ir iestatījums maksimālajam lietu skaitam, ko Apache var apstrādāt vienlaicīgi. '250', tātad maksimāli paralēli varēja apstrādāt 250 gadījumus, bet, aplūkojot atmiņas izmantošanu, katram gadījumam tika izmantoti aptuveni 8 MB atmiņas.

Šķita, ka tas izmanto 960 MB atmiņas (8M x 120 procesi), un iestatījuma vērtība bija "250", taču šķita, ka nav iespējams izveidot vairāk par "120" procesiem.
※Servera atmiņa ir gandrīz sasniegusi 1G robežu.

Faktiski darbinot serveri, ja tiek iekļauti arī PHP un Java, ierobežojums ir aptuveni 100 gadījumi, un, ja ir vieta, paralēli vienlaicīgi var apstrādāt 80 gadījumus.

Ja ir instalēts un darbojas tikai Apache ar specifikācijām "CPU: 2core, atmiņa: 1GB, SSD: 50GB", tika konstatēts, ka vienlaicīgas piekļuves skaits "120" ir robeža.

2-2. apsvērumi

No šejienes tas kļūst par apsvērumu, bet, tā kā atmiņa ir šaurais kakls, ja tiek mainīta atmiņa, palielinās vienlaicīgi apstrādājamo procesu skaits.

【Klātesošie.(memory1GB)】

  • memory:1GB
  • Apache pavedienu skaits:120 gadījumi
  • Atmiņas patēriņš uz pavedienu Apache:8MB
  • Apache atmiņas patēriņš:960MB(120 gadījumi×8MB)

【pēc izmaiņām(memory2GB)】

  • memory:2GB
  • Apache pavedienu skaits:240 gadījumi.
  • Atmiņas patēriņš uz pavedienu Apache:8MB
  • Apache atmiņas patēriņš:1920MB(240 gadījumi.×8MB)

Ja atmiņas apjoms tiek palielināts līdz 2 GB, iespējams dubultot lietu skaitu līdz aptuveni 240 vienlaicīgi. Ja atmiņa tiek palielināta līdz 3 GB, šķiet, ka var veikt lielāku vienlaicīgu apstrādi, taču Apache MPM "MaxRequestWorkers (maksimālais vienlaicīgi apstrādājamo lietu skaits)" ir "250", tāpēc, ja atmiņa tiks palielināta vēl vairāk, būs nepieciešams veikt arī šo iestatījumu. Un otrādi, ja atmiņa tiek samazināta uz pusi, tas būtu šādi.

【pēc izmaiņām(memory512GB)】

  • memory:512GB
  • Apache pavedienu skaits:60 gadījumi.
  • Atmiņas patēriņš uz pavedienu Apache:8MB
  • Apache atmiņas patēriņš:480MB(60 gadījumi.×8MB)

3. kopsavilkums

Mēs esam izmērījuši maksimālo gadījumu skaitu, ko tīmekļa serveris (Apache) var apstrādāt vienlaicīgi. Tika konstatēts, ka aptuveni 60 cilvēku sistēma var darboties bez problēmām ar "CPU: 1core", "memory: 512MB" un "SSD: 25GB".

Apsekojuma pamatā ir pieņēmums, ka neviena cita programmatūra nedarbojas ar minimālu veiktspēju. Ieteicams izvēlēties specifikāciju ar nelielu rezervi, jo tā ir robežvērtība.

Paldies, ka noskatījāties līdz beigām.