Išmatavau didžiausią atvejų skaičių, kurį žiniatinklio serveris ("Apache") gali apdoroti vienu metu, naudodamas VPS nuomos serverį.
Paskelbimo data:2020 m. gruodžio 31 d.
INFOMARTION > Išmatavau didžiausią atvejų skaičių, kurį žiniatinklio serveris ("Apache") gali apdoroti vienu metu, naudodamas VPS nuomos serverį.
Apžvalga.
Išmatavau maksimalų atvejų skaičių, kurį žiniatinklio serveris ("Apache") gali apdoroti vienu metu, ir norėčiau parašyti apie rezultatus. Mums buvo įdomu, kiek daugiausia užklausų galima aptarnauti, todėl atlikome apklausą. Naudokite tai kaip nuorodą rinkdamiesi VPS serverio specifikacijas.
Šį kartą matavimai buvo atliekami tik WEB (Apache), tačiau toliau pateiktame straipsnyje aprašyti WEB ir AP serverių (Apache ir Tomcat) matavimai.
Turinys
1. matavimas
1-1. Matavimo aplinka
Toliau pateikiama aplinka, kurioje bus atliekami matavimai.
■Nuomos serverio informacija
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Serverio informacija
OS | CentOS 7.4 64bit |
---|---|
Žiniatinklio serveris | Apache HTTP Server 2.4.41 |
1-2. Matavimo metodas
Norėčiau tai išmatuoti naudodamas "JMeter". "JMeter" yra apkrovos matavimo įrankis, veikiantis "Java" kalba. Įrankis leidžia vienu metu išmesti daug užklausų. Naudodami "JMeter" norėtume palaipsniui didinti vienalaikių užklausų skaičių ir didinti apkrovą tol, kol nebegalėsime apdoroti duomenų.
Specifinės sąlygos.
- užklausos intervalas・・・5 sek.
- Vienu metu pateiktų užklausų skaičius・・・10 atvejų.(Matavimai palaipsniui didėjo po 10 atvejų.)
- Laiko matavimas・・・60 sekundžių.
Matavimo laikas yra "60 sekundžių", o užklausos intervalas - "5 sekundės", todėl norite pakartotinai prisijungti prie sistemos 12 kartų (60÷5).
1-3. matavimo rezultatai
Galiausiai daugelį žmonių domina išvada, kokių specifikacijų serveris gali dirbti ir kiek jis gali dirbti, todėl pirmiausia norėčiau pateikti išvadą.
CPU:2core memory:1GB SSD:50GB | Vienu metu galima apdoroti iki 120 užklausų. |
---|
Šio matavimo rezultatai parodė tai, kas išdėstyta pirmiau. Iš pirmiau pateiktų rezultatų galima daryti tokias išvadas. Rinkdamiesi serverio specifikacijas, pabandykite vadovautis šiuo kriterijumi.
CPU:1core memory:512MB SSD:25GB | Vienu metu galima apdoroti iki 60 užklausų. |
---|---|
CPU:2core memory:1GB SSD:50GB | Vienu metu galima apdoroti iki 120 užklausų. |
CPU:3core memory:2GB SSD:100GB | Vienu metu galima apdoroti iki 240 užklausų. |
Nustatyta, kad net ir su tokiomis specifikacijomis: "CPU: 1 branduolys", "atmintis: 512 MB" ir "SSD: 25 GB", maždaug 60 žmonių sistema gali veikti be problemų.
2. Išsami informacija apie matavimo rezultatus
Matavimo rezultatus aprašėme anksčiau, tačiau jei jus domina, kokius rezultatus aprašėme, taip pat peržiūrėkite matavimo rezultatų detales, kurios bus aprašytos ateityje.
2-1. WEB serverio (Apache) matavimai
Pasikartojančios užklausos buvo metamos į puslapius, sukurtus HTML formatu. Tai paprastas puslapis, kuriame nėra jokio sudėtingo PHP apdorojimo ar "JavaScript".
Atlikus matavimus gauti tokie rezultatai.
- 10 užklausų vienu metu⇒OK
- 20 užklausų vienu metu⇒OK
- 30 užklausų vienu metu⇒OK
- 40 užklausų vienu metu⇒OK
- 50 užklausų vienu metu⇒OK
- 60 užklausų vienu metu⇒OK
- 70 užklausų vienu metu⇒OK
- 80 užklausų vienu metu⇒OK
- 90 užklausų vienu metu⇒OK
- 100 vienalaikių užklausų⇒OK
- 110 vienalaikių užklausų⇒OK
- 120 užklausų vienu metu⇒OK
- 130 vienalaikių užklausų⇒NG
Klaida įvyko 130-oje byloje. Priežastis - ryšio su "Apache" klaida. Tuo metu serverio būklė buvo tokia.
- Procesoriaus apkrovimas・・・26%
- atminties naudojimo lygis・・・100%
Sunkumų kėlė visiškas atminties trūkumas.
Šiek tiek labiau išprususiems, "Apache Multi-Processing Module" (MPM) konfigūracija yra tokia. MPM paprasčiausiai paaiškinamas kaip nustatymas, kiek "Apache" leidžiama apdoroti lygiagrečiai.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Domina nustatymas "MaxRequestWorkers" - "250". Tai nustatymas, kiek daugiausia bylų "Apache" gali apdoroti vienu metu. '250', todėl maksimaliai lygiagrečiai buvo galima apdoroti 250 atvejų, tačiau žiūrint į atminties naudojimą, vienam atvejui buvo naudojama apie 8 MB atminties.
Atrodė, kad jis naudoja 960 MB atminties (8M x 120 procesų), o nustatymo reikšmė buvo "250", tačiau atrodė, kad neįmanoma sukurti daugiau nei "120" procesų.
※Serverio atmintis beveik pasiekė 1G ribą.
Iš tikrųjų veikiant serveriui, jei į jį taip pat įtrauktos PHP ir "Java", riba yra apie 100 atvejų, o jei yra vietos, vienu metu lygiagrečiai galima apdoroti 80 atvejų.
Įdiegus ir paleidus tik "Apache" su specifikacijomis "CPU: 2core, memory: 1GB, SSD: 50GB", nustatyta, kad vienalaikių prieigų skaičius "120" yra riba.
2-2. svarstymas
Toliau tai tampa svarstymu, bet kadangi atmintis yra siauras kaklelis, pakeitus atmintį, padidės ir vienu metu apdorojamų procesų skaičius.
【Dalyvauja.(memory1GB)】
- memory:1GB
- "Apache" gijų skaičius:120 atvejų
- Atminties suvartojimas vienam "Apache" srautui:8MB
- "Apache" atminties suvartojimas:960MB(120 atvejų×8MB)
【po pakeitimo(memory2GB)】
- memory:2GB
- "Apache" gijų skaičius:240 atvejų.
- Atminties suvartojimas vienam "Apache" srautui:8MB
- "Apache" atminties suvartojimas:1920MB(240 atvejų.×8MB)
Padidinus atmintį iki 2 GB, galima padvigubinti bylų skaičių iki maždaug 240 vienu metu. Padidinus atmintį iki 3 GB, atrodo, kad vienu metu galima apdoroti daugiau duomenų, tačiau "Apache" MPM "MaxRequestWorkers (didžiausias vienu metu apdorojamų atvejų skaičius)" yra "250", todėl, dar labiau padidinus atmintį, čia taip pat reikės atlikti derinimą. Ir atvirkščiai, jei atmintis būtų sumažinta perpus, ji būtų tokia.
【po pakeitimo(memory512GB)】
- memory:512GB
- "Apache" gijų skaičius:60 atvejų.
- Atminties suvartojimas vienam "Apache" srautui:8MB
- "Apache" atminties suvartojimas:480MB(60 atvejų.×8MB)
3. santrauka
Išmatavome didžiausią atvejų skaičių, kurį žiniatinklio serveris ("Apache") gali apdoroti vienu metu. Nustatyta, kad sistema, kurioje dirba apie 60 žmonių, gali be problemų veikti su "CPU: 1core", "memory: 512MB" ir "SSD: 25GB".
Tyrimas grindžiamas prielaida, kad jokia kita programinė įranga neveikia ribinio našumo režimu. Rekomenduojama pasirinkti specifikaciją su tam tikra laisve, nes tai yra ribinė vertė.
Dėkojame, kad žiūrėjote iki pabaigos.
■INFORMATION
Spustelėkite čia, kad pereitumėte į viršutinį puslapį su informacija.
■PROFILE
Spustelėkite čia, kad pamatytumėte profilį.
■Kontaktinė informacija.
Jei turite klausimų apie straipsnį, susisiekite su mumis čia.