Apache HTTP servera slodzes tests nelielā VPS: metode un rezultāti
Publikācijas datums:
Atjaunināts:
Tehniskie raksti > Apache HTTP servera slodzes tests nelielā VPS: metode un rezultāti
2026. gada statuss un droša lietošana
Galvenais: šajā rakstā dokumentēts viens VPS eksperiments, nevis universāla Apache vienlaicīgās slodzes robeža. Jauda ir atkarīga no atbildes apstrādes, MPM procesu vai pavedienu ierobežojumiem, KeepAlive, TLS, CPU, atmiņas, krātuves, tīkla, slodzes ģeneratora novietojuma un pieļaujamā latentuma.
Ko jūs uzzināsiet
- Kā tika izkārtots sākotnējais tests un ko tajā novērotie skaitļi parāda un ko nerāda.
- Kura Apache un operētājsistēmas metrika palīdz noteikt pirmo vājo vietu.
- Kā izveidot atkārtojamu slodzes testu ar iesildīšanu, procentilēm, kļūdām un servera puses telemetriju.
Kam tas paredzēts: inženieriem, kuri plāno sākotnēju tīmekļa servera slodzes pārbaudi nelielā VPS.
2026. gada konteksts: tālāk norādītie mērījumi saglabāti no autora sākotnējās vides un šim atjauninājumam nav atkārtoti. Neizmantojiet tos kā pašreizēju pakalpojuma sniedzēja etalonu vai ražošanas sistēmas izmēra ieteikumu; pārbaudiet savu lietojumprogrammu un tās kļūmju sliekšņus.
Drošības piezīme. Sākotnējā rakstā esošās komandas un konfigurācijas piemēri nav atkārtoti izpildīti pašreizējā ražošanas vidē. Pirms to lietošanas pārbaudiet atbalstītās versijas, dublējumus, piekļuves vadīklas un atcelšanas darbības atsevišķā testa vidē.
Galvenie oficiālie avoti
Pārskats
Šajā vēsturiskajā eksperimentā tika palielināts vienlaicīgo pieprasījumu skaits, lai novērotu, kad konkrētā VPS vidē Apache HTTP Server sāk kļūdīties. Rezultāti raksturo tikai norādīto konfigurāciju un vienkāršo testa lapu.
Šajā lapā aplūkots tikai tīmekļa serveris Apache. Atsevišķā rakstā aprakstīts tests ar Apache un Tomcat kopā.
Apache un Tomcat slodzes tests VPS vidē: veiktspējas ierobežojumi un rezultāti
Satura rādītājs
1. Mērījumi
1-1. Mērījumu vide
Testa vide bija šāda.
■ VPS informācija
| CPU | 2 kodoli |
|---|---|
| Atmiņa | 1 GB |
| SSD | 50GB |
■ Servera programmatūra
| OS | CentOS 7.4 64bit |
|---|---|
| Tīmekļa serveris | Apache HTTP Server 2.4.41 |
1-2. Mērīšanas metode
Slodze tika ģenerēta ar Java vidē darbināmo rīku JMeter. Vienlaicīgo pieprasījumu skaits tika pakāpeniski palielināts, līdz serveris tos vairs nespēja sekmīgi apstrādāt.
Testa nosacījumi bija šādi.
- Pieprasījumu intervāls: 5 sekundes.
- Sākotnējais vienlaicīgo pieprasījumu skaits: 10; katrā nākamajā mērījumā tas palielināts par 10.
- Mērījuma ilgums: 60 sekundes.
Tā kā mērījums ilga 60 sekundes un intervāls bija 5 sekundes, katra virtuālā lietotāja darbība atkārtojās 12 reizes (60÷5).
1-3. Mērījumu rezultāti
Vispirms apkopoti toreizējā testa rezultāti pēc izmantotās VPS konfigurācijas.
| CPU: 2core memory: 1GB SSD: 50GB | Vienlaikus var apstrādāt līdz 120 pieprasījumiem. |
|---|
Šie skaitļi ir tikai novērojumi konkrētajā testa vidē. Tie nav garantēta jauda un nav tieši pārvēršami reālu lietotāju skaitā.
| 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. |
Vēsturiskajā aprēķinā konfigurācijai "CPU: 1 kodols", "atmiņa: 512 MB" un "SSD: 25 GB" tika prognozēti aptuveni 60 vienlaicīgi pieprasījumi. Tas neapliecina, ka šāda sistēma bez problēmām apkalpos 60 reālus lietotājus.
2. Sīkāka informācija par mērījumu rezultātiem
Tālāk parādīti detalizētie novērojumi, uz kuriem balstīts iepriekšējais kopsavilkums.
2-1. WEB servera (Apache) mērījumi
Atkārtoti pieprasījumi tika sūtīti vienkāršai HTML lapai bez PHP apstrādes vai sarežģīta JavaScript.
Testā tika novēroti šādi rezultāti.
- 10 vienlaicīgi pieprasījumi ⇒ OK
- 20 vienlaicīgi pieprasījumi ⇒ OK
- 30 vienlaicīgi pieprasījumi ⇒ OK
- 40 vienlaicīgi pieprasījumi ⇒ OK
- 50 vienlaicīgi pieprasījumi ⇒ OK
- 60 vienlaicīgi pieprasījumi ⇒ OK
- 70 vienlaicīgi pieprasījumi ⇒ OK
- 80 vienlaicīgi pieprasījumi ⇒ OK
- 90 vienlaicīgi pieprasījumi ⇒ OK
- 100 vienlaicīgi pieprasījumi ⇒ OK
- 110 vienlaicīgi pieprasījumi ⇒ OK
- 120 vienlaicīgi pieprasījumi ⇒ OK
- 130 vienlaicīgi pieprasījumi ⇒ kļūme
Pie 130 vienlaicīgiem pieprasījumiem radās Apache savienojuma kļūda. Servera stāvoklis tajā brīdī bija šāds.
- CPU noslodze: 26%
- Atmiņas izmantojums: 100%
Šajā testā pirmā novērotā vājā vieta bija atmiņas trūkums.
Apache Multi-Processing Module (MPM) nosaka procesu vai pavedienu pārvaldības modeli un vienlaicīgās apstrādes ierobežojumus. Izmantotā konfigurācija bija šāda.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
MaxRequestWorkers vērtība bija "250". Tā ir konfigurācijas augšējā robeža vienlaicīgi apkalpotiem pieprasījumiem, nevis garantija, ka serverim pietiks CPU, atmiņas vai citu resursu visu 250 pieprasījumu apstrādei. Šajā novērojumā vienam procesam tika aptuveni attiecināti 8 MB atmiņas.
120 procesiem aprēķinātais patēriņš bija aptuveni 960 MB (8 MB × 120), tāpēc 1 GB serveris bija gandrīz sasniedzis atmiņas robežu, lai gan MaxRequestWorkers bija iestatīts uz "250".
Ja tajā pašā serverī darbojas arī PHP, Java vai citi pakalpojumi, Apache pieejamā atmiņa samazinās un slodzes robeža var būt zemāka.
Konkrētajā testā tikai ar Apache un konfigurāciju "CPU: 2 kodoli, atmiņa: 1 GB, SSD: 50 GB" kļūme pirmoreiz tika novērota virs 120 vienlaicīgiem pieprasījumiem.
2-2. Rezultātu interpretācija
Tā kā šajā testā atmiņa bija pirmā vājā vieta, sākotnējā rakstā tika veikts vienkāršots lineārs aprēķins dažādiem atmiņas apjomiem. Tas ir aptuvens pieņēmums: reālā slodzē procesu atmiņas patēriņš nav obligāti nemainīgs, un ierobežojumu var sasniegt CPU, tīkls vai cita komponente.
Pašreizējā konfigurācija (1 GB atmiņas)
- Atmiņa: 1 GB
- Apache procesi: 120
- Aptuvenais atmiņas patēriņš vienam Apache procesam: 8 MB
- Apache aprēķinātais atmiņas patēriņš: 960 MB (120 × 8 MB)
Vienkāršotais aprēķins 2 GB atmiņai
- Atmiņa: 2 GB
- Apache procesi: 240
- Aptuvenais atmiņas patēriņš vienam Apache procesam: 8 MB
- Apache aprēķinātais atmiņas patēriņš: 1920 MB (240 × 8 MB)
Lineārais aprēķins paredzētu aptuveni 240 procesus ar 2 GB atmiņas, taču tas nav izmērīts rezultāts. Pirms MaxRequestWorkers palielināšanas jāpārbauda procesa faktiskais atmiņas patēriņš, latentums, kļūdas un pārējie servera resursi.
Vienkāršotais aprēķins 512 MB atmiņai
- Atmiņa: 512 MB
- Apache procesi: 60
- Aptuvenais atmiņas patēriņš vienam Apache procesam: 8 MB
- Apache aprēķinātais atmiņas patēriņš: 480 MB (60 × 8 MB)
3. Kopsavilkums
Vēsturiskajā testā konkrētais Apache serveris ar 1 GB atmiņas apstrādāja līdz 120 vienlaicīgiem vienkāršās HTML lapas pieprasījumiem, bet pie 130 pieprasījumiem radās kļūme un atmiņas izmantojums sasniedza 100%.
Šo robežu nevar pārvērst lietotāju skaitā vai pārnest uz citu konfigurāciju. Jaudas plānošanai izveidojiet reprezentatīvu scenāriju, nosakiet latentuma un kļūdu sliekšņus un testēšanas laikā reģistrējiet servera puses metriku.