J'ai mesuré le nombre maximum de cas que le serveur web (Apache) peut traiter simultanément en utilisant un serveur de location VPS.
Date de publication:31 décembre 2020.
INFOMARTION > J'ai mesuré le nombre maximum de cas que le serveur web (Apache) peut traiter simultanément en utilisant un serveur de location VPS.
Vue d'ensemble.
J'ai mesuré le nombre maximum de cas que le serveur web (Apache) peut traiter en même temps, et je voudrais écrire sur les résultats. Nous étions curieux de connaître le nombre maximum de demandes pouvant être servies, nous avons donc mené une enquête. Utilisez-le comme référence pour sélectionner les spécifications du serveur VPS.
Cette fois, les mesures ont été effectuées uniquement sur le WEB (Apache), mais veuillez vous référer à l'article ci-dessous pour les mesures sur les serveurs WEB/AP (Apache et Tomcat).
Table des matières
1. mesure
1-1. Environnement de mesure
Voici l'environnement dans lequel les mesures seront effectuées.
■Informations sur le serveur de location
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Informations sur le serveur
OS | CentOS 7.4 64bit |
---|---|
Serveur web | Apache HTTP Server 2.4.41 |
1-2. Méthode de mesure
Je voudrais mesurer cela en utilisant JMeter. JMeter est un outil de mesure de charge qui fonctionne en Java. Cet outil permet de lancer un grand nombre de requêtes en même temps. Nous souhaitons augmenter progressivement le nombre de demandes simultanées à l'aide de JMeter et augmenter la charge jusqu'à ce que le traitement ne puisse plus être géré.
Les conditions spécifiques comprennent.
- intervalle de demande・・・5 sec.
- Nombre de demandes simultanées・・・10 cas.(Les mesures ont augmenté progressivement de 10 cas chacune.)
- Temps de mesure・・・60 secondes.
Le temps de mesure est de "60 secondes" et l'intervalle de demande de "5 secondes", vous voulez donc accéder au système 12 fois (60÷5) de manière répétée.
1-3. résultat des mesures
En fin de compte, de nombreuses personnes sont intéressées par la conclusion sur les spécifications que le serveur peut gérer et sur la quantité qu'il peut gérer, c'est pourquoi je voudrais énoncer la conclusion en premier.
CPU:2core memory:1GB SSD:50GB | Jusqu'à 120 demandes simultanées peuvent être traitées. |
---|
Les résultats de cette mesure ont montré ce qui précède. Les résultats ci-dessus permettent de déduire ce qui suit. Essayez d'utiliser ce critère lors du choix des spécifications du serveur.
CPU:1core memory:512MB SSD:25GB | Jusqu'à 60 demandes simultanées peuvent être traitées. |
---|---|
CPU:2core memory:1GB SSD:50GB | Jusqu'à 120 demandes simultanées peuvent être traitées. |
CPU:3core memory:2GB SSD:100GB | Jusqu'à 240 demandes simultanées peuvent être traitées. |
Même avec des spécifications de "CPU : 1core", "mémoire : 512MB" et "SSD : 25GB", il a été constaté qu'un système d'environ 60 personnes pouvait fonctionner sans problème.
2. Détails des résultats des mesures
Nous avons décrit les résultats des mesures précédemment, mais si vous êtes intéressé par le type de résultats que nous avons décrits, veuillez également consulter les détails des résultats des mesures qui seront décrits ultérieurement.
2-1. Mesures du serveur WEB (Apache)
Des requêtes répétées ont été lancées contre des pages créées en HTML. Il s'agit d'une page simple, sans traitement PHP ni complexité JavaScript.
Les mesures ont donné les résultats suivants.
- Pour 10 demandes simultanées⇒OK
- Pour 20 demandes simultanées⇒OK
- Pour 30 demandes simultanées⇒OK
- Pour 40 demandes simultanées⇒OK
- Pour 50 demandes simultanées⇒OK
- Pour 60 demandes simultanées⇒OK
- Pour 70 demandes simultanées⇒OK
- Pour 80 demandes simultanées⇒OK
- Pour 90 demandes simultanées⇒OK
- Pour 100 demandes simultanées⇒OK
- 110 demandes simultanées⇒OK
- Pour 120 demandes simultanées⇒OK
- Pour 130 demandes simultanées⇒NG
Une erreur s'est produite au 130ème cas. La cause était une erreur de connexion à Apache. L'état du serveur à ce moment-là était le suivant.
- Utilisation du CPU・・・26%
- taux d'utilisation de la mémoire・・・100%
Un manque total de mémoire était le goulot d'étranglement.
Pour ceux qui sont un peu plus geeks, la configuration du module multiprocesseur (MPM) d'Apache est la suivante. MPM s'explique simplement comme le réglage de la quantité de données qu'Apache est autorisé à traiter en parallèle.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Le paramètre qui nous intéresse est "250" pour "MaxRequestWorkers". Il s'agit du nombre maximum de cas qu'Apache peut traiter en même temps. 250", ce qui permet de traiter 250 cas en parallèle au maximum, mais si l'on regarde l'utilisation de la mémoire, environ 8 Mo de mémoire sont utilisés par cas.
Il semblait utiliser 960 Mo de mémoire (8M x 120 processus) et la valeur du paramètre était '250', mais il semblait qu'il n'était pas possible de créer plus de '120' processus.
※La mémoire du serveur a presque atteint sa limite de 1G.
Lors du fonctionnement effectif du serveur, si PHP et Java sont également inclus, la limite est d'environ 100 cas, et s'il y a de la place, 80 cas peuvent être traités simultanément en parallèle.
Lorsque seul Apache est installé et fonctionne, avec les spécifications "CPU : 2core, mémoire : 1GB, SSD : 50GB", le nombre d'accès simultanés "120" s'est avéré être la limite.
2-2. considération
À partir de là, il faut tenir compte du fait que la mémoire est le goulot d'étranglement. Si la mémoire est modifiée, le nombre de processus pouvant être traités simultanément augmentera.
【Présent.(memory1GB)】
- memory:1GB
- Nombre de threads Apache:120 cas
- Consommation de mémoire par thread dans Apache.:8MB
- Consommation de mémoire d'Apache:960MB(120 cas×8MB)
【après le changement(memory2GB)】
- memory:2GB
- Nombre de threads Apache:240 cas.
- Consommation de mémoire par thread dans Apache.:8MB
- Consommation de mémoire d'Apache:1920MB(240 cas.×8MB)
Si la mémoire est augmentée à 2 Go, il sera possible de doubler le nombre de cas pour atteindre environ 240 cas simultanément. Si la mémoire est augmentée à 3GB, il semble qu'un plus grand nombre de traitements simultanés puisse être effectué, mais le "MaxRequestWorkers (nombre maximum de cas à traiter simultanément)" du MPM d'Apache est "250", donc un réglage ici sera également nécessaire si la mémoire est augmentée davantage. A l'inverse, si la mémoire est divisée par deux, on obtient le résultat suivant.
【après le changement(memory512GB)】
- memory:512GB
- Nombre de threads Apache:60 caisses.
- Consommation de mémoire par thread dans Apache.:8MB
- Consommation de mémoire d'Apache:480MB(60 caisses.×8MB)
3. résumé
Nous avons mesuré le nombre maximum de cas que le serveur web (Apache) peut traiter en même temps. Il a été constaté qu'un système d'environ 60 personnes pouvait fonctionner sans problème avec "CPU : 1core", "mémoire : 512MB" et "SSD : 25GB".
L'enquête repose sur l'hypothèse qu'aucun autre logiciel ne fonctionne à des performances marginales. Il est recommandé de choisir une spécification avec une certaine marge de manœuvre, car il s'agit d'une valeur marginale.
Merci d'avoir regardé jusqu'à la fin.
■INFORMATION
Veuillez cliquer ici pour accéder à la page d'accueil d'INFORMATION.
■PROFILE
Veuillez cliquer ici pour un profil.
■Coordonnées de contact.
Pour toute question concernant cet article, veuillez nous contacter ici.