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ā.
Satura rādītājs
1. mērījumi
1-1. Mērījumu vide
Vide, kurā tiks veikti mērījumi, ir šāda.
■Nomas servera informācija
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Servera informācija
OS | CentOS 7.4 64bit |
---|---|
Tīmekļa serveris | Apache 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.