Μέτρησα τον μέγιστο αριθμό περιπτώσεων που μπορεί να χειριστεί ταυτόχρονα ο διακομιστής ιστού (Apache) χρησιμοποιώντας έναν διακομιστή ενοικίασης VPS.
Ημερομηνία δημοσίευσης:31 Δεκεμβρίου 2020.
INFOMARTION > Μέτρησα τον μέγιστο αριθμό περιπτώσεων που μπορεί να χειριστεί ταυτόχρονα ο διακομιστής ιστού (Apache) χρησιμοποιώντας έναν διακομιστή ενοικίασης VPS.
Επισκόπηση.
Έχω μετρήσει τον μέγιστο αριθμό περιπτώσεων που μπορεί να επεξεργαστεί ταυτόχρονα ο διακομιστής ιστού (Apache) και θα ήθελα να γράψω για τα αποτελέσματα. Ήμασταν περίεργοι για τον μέγιστο αριθμό αιτήσεων που θα μπορούσαν να εξυπηρετηθούν, οπότε πραγματοποιήσαμε μια έρευνα. Χρησιμοποιήστε το ως αναφορά για την επιλογή των προδιαγραφών του διακομιστή VPS.
Αυτή τη φορά, οι μετρήσεις πραγματοποιήθηκαν μόνο στον WEB (Apache), αλλά ανατρέξτε στο παρακάτω άρθρο για μετρήσεις στους διακομιστές WEB/AP (Apache και Tomcat).
Πίνακας περιεχομένων
1. μέτρηση
1-1. Περιβάλλον μέτρησης
Ακολουθεί το περιβάλλον στο οποίο θα γίνουν οι μετρήσεις.
■Πληροφορίες διακομιστή ενοικίασης
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Πληροφορίες διακομιστή
OS | CentOS 7.4 64bit |
---|---|
Διακομιστής Web | Apache HTTP Server 2.4.41 |
1-2. Μέθοδος μέτρησης
Θα ήθελα να το μετρήσω αυτό χρησιμοποιώντας το JMeter. Το JMeter είναι ένα εργαλείο μέτρησης φορτίου που εκτελείται σε Java. Το εργαλείο επιτρέπει την ταυτόχρονη υποβολή μεγάλου αριθμού αιτήσεων. Θα θέλαμε να αυξήσουμε σταδιακά τον αριθμό των ταυτόχρονων αιτήσεων χρησιμοποιώντας το JMeter και να αυξήσουμε το φορτίο έως ότου η επεξεργασία δεν μπορεί πλέον να αντιμετωπιστεί.
Οι ειδικές συνθήκες περιλαμβάνουν.
- διάστημα αίτησης・・・5 δευτερόλεπτα.
- Αριθμός ταυτόχρονων αιτήσεων・・・10 περιπτώσεις.(Οι μετρήσεις αυξάνονταν σταδιακά κατά 10 περιπτώσεις κάθε φορά.)
- Μέτρηση χρόνου・・・60 δευτερόλεπτα.
Ο χρόνος μέτρησης είναι "60 δευτερόλεπτα" και το διάστημα αίτησης "5 δευτερόλεπτα", οπότε θέλετε να αποκτήσετε πρόσβαση στο σύστημα 12 φορές (60÷5) επανειλημμένα.
1-3. αποτέλεσμα της μέτρησης
Τελικά, πολλοί άνθρωποι ενδιαφέρονται για το συμπέρασμα σχετικά με το ποιες προδιαγραφές μπορεί να χειριστεί ο διακομιστής και πόσο μπορεί να χειριστεί, οπότε θα ήθελα να αναφέρω πρώτα το συμπέρασμα.
CPU:2core memory:1GB SSD:50GB | Μπορούν να διεκπεραιωθούν έως και 120 ταυτόχρονες αιτήσεις. |
---|
Τα αποτελέσματα αυτής της μέτρησης έδειξαν τα παραπάνω. Από τα παραπάνω αποτελέσματα συνάγονται τα εξής. Προσπαθήστε να το χρησιμοποιήσετε ως κριτήριο κατά την επιλογή των προδιαγραφών του διακομιστή.
CPU:1core memory:512MB SSD:25GB | Μπορούν να διεκπεραιωθούν έως και 60 ταυτόχρονες αιτήσεις. |
---|---|
CPU:2core memory:1GB SSD:50GB | Μπορούν να διεκπεραιωθούν έως και 120 ταυτόχρονες αιτήσεις. |
CPU:3core memory:2GB SSD:100GB | Μπορούν να διεκπεραιωθούν έως και 240 ταυτόχρονες αιτήσεις. |
Ακόμη και με τις προδιαγραφές "CPU: 1core", "μνήμη: 512MB" και "SSD: 25GB", διαπιστώθηκε ότι ένα σύστημα περίπου 60 ατόμων μπορούσε να λειτουργήσει χωρίς προβλήματα.
2. Λεπτομέρειες των αποτελεσμάτων των μετρήσεων
Έχουμε περιγράψει τα αποτελέσματα των μετρήσεων νωρίτερα, αλλά αν ενδιαφέρεστε για το είδος των αποτελεσμάτων που έχουμε περιγράψει, ελέγξτε επίσης τις λεπτομέρειες των αποτελεσμάτων των μετρήσεων που θα περιγραφούν στο μέλλον.
2-1. Μετρήσεις διακομιστή WEB (Apache)
Επανειλημμένες αιτήσεις απορρίφθηκαν σε σελίδες που δημιουργήθηκαν σε HTML. Πρόκειται για μια απλή σελίδα χωρίς επεξεργασία PHP ή πολυπλοκότητα JavaScript.
Οι μετρήσεις έδειξαν τα ακόλουθα αποτελέσματα.
- Για 10 ταυτόχρονες αιτήσεις⇒OK
- Για 20 ταυτόχρονες αιτήσεις⇒OK
- Για 30 ταυτόχρονες αιτήσεις⇒OK
- Για 40 ταυτόχρονες αιτήσεις⇒OK
- Για 50 ταυτόχρονες αιτήσεις⇒OK
- Για 60 ταυτόχρονες αιτήσεις⇒OK
- Για 70 ταυτόχρονες αιτήσεις⇒OK
- Για 80 ταυτόχρονες αιτήσεις⇒OK
- Για 90 ταυτόχρονες αιτήσεις⇒OK
- Για 100 ταυτόχρονες αιτήσεις⇒OK
- 110 ταυτόχρονες αιτήσεις⇒OK
- Για 120 ταυτόχρονες αιτήσεις⇒OK
- Για 130 ταυτόχρονες αιτήσεις⇒NG
Εμφανίστηκε σφάλμα στην 130η περίπτωση. Η αιτία ήταν ένα σφάλμα σύνδεσης με τον Apache. Η κατάσταση του διακομιστή εκείνη τη στιγμή είχε ως εξής.
- Χρήση CPU・・・26%
- ρυθμός χρήσης μνήμης・・・100%
Η πλήρης έλλειψη μνήμης ήταν το πρόβλημα.
Για τους λίγο πιο ψαγμένους, η διαμόρφωση του Apache Multi-Processing Module (MPM) έχει ως εξής. Το MPM εξηγείται απλά ως η ρύθμιση του πόσο επιτρέπεται στον Apache να επεξεργάζεται παράλληλα.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Η ρύθμιση που ενδιαφέρει είναι "250" για το "MaxRequestWorkers". Πρόκειται για τη ρύθμιση του μέγιστου αριθμού υποθέσεων που μπορεί να επεξεργαστεί ο Apache ταυτόχρονα. '250', οπότε 250 περιπτώσεις θα μπορούσαν να υποβληθούν σε μέγιστη παράλληλη επεξεργασία, αλλά εξετάζοντας τη χρήση μνήμης, χρησιμοποιήθηκαν περίπου 8 MB μνήμης ανά περίπτωση.
Φαινόταν να χρησιμοποιεί 960 MB μνήμης (8M x 120 διεργασίες) και η τιμή ρύθμισης ήταν '250', αλλά φαινόταν ότι δεν ήταν δυνατό να δημιουργηθούν περισσότερες από '120' διεργασίες.
※Η μνήμη του διακομιστή έχει φτάσει σχεδόν στο όριο του 1G.
Κατά την πραγματική λειτουργία του διακομιστή, εάν συμπεριληφθούν επίσης η PHP και η Java, το όριο είναι περίπου 100 περιπτώσεις, και εάν υπάρχει χώρος, 80 περιπτώσεις μπορούν να υποβληθούν σε ταυτόχρονη παράλληλη επεξεργασία.
Όταν μόνο ο Apache είναι εγκατεστημένος και εκτελείται, με προδιαγραφές "CPU: 2core, μνήμη: 1GB, SSD: 50GB", ο αριθμός των ταυτόχρονων προσβάσεων "120" βρέθηκε να είναι το όριο.
2-2. αντίτιμο
Από εδώ και πέρα γίνεται μια εξέταση, αλλά καθώς η μνήμη είναι το σημείο συμφόρησης, αν αλλάξει η μνήμη, θα αυξηθεί ο αριθμός των διεργασιών που μπορούν να υποβληθούν σε ταυτόχρονη επεξεργασία.
【Παρόντες.(memory1GB)】
- memory:1GB
- Αριθμός νημάτων Apache:120 περιπτώσεις
- Κατανάλωση μνήμης ανά νήμα στον Apache.:8MB
- Κατανάλωση μνήμης Apache:960MB(120 περιπτώσεις×8MB)
【μετά την αλλαγή(memory2GB)】
- memory:2GB
- Αριθμός νημάτων Apache:240 περιπτώσεις.
- Κατανάλωση μνήμης ανά νήμα στον Apache.:8MB
- Κατανάλωση μνήμης Apache:1920MB(240 περιπτώσεις.×8MB)
Εάν η μνήμη αυξηθεί στα 2 GB, μπορεί να διπλασιαστεί ο αριθμός των περιπτώσεων σε περίπου 240 ταυτόχρονα. Αν η μνήμη αυξηθεί στα 3GB, φαίνεται ότι μπορεί να γίνει περισσότερη ταυτόχρονη επεξεργασία, αλλά το "MaxRequestWorkers (μέγιστος αριθμός περιπτώσεων προς ταυτόχρονη επεξεργασία)" του MPM του Apache είναι "250", οπότε ο συντονισμός εδώ θα είναι επίσης απαραίτητος αν η μνήμη αυξηθεί περαιτέρω. Αντίθετα, αν η μνήμη μειωθεί στο μισό, θα έχει ως εξής.
【μετά την αλλαγή(memory512GB)】
- memory:512GB
- Αριθμός νημάτων Apache:60 περιπτώσεις.
- Κατανάλωση μνήμης ανά νήμα στον Apache.:8MB
- Κατανάλωση μνήμης Apache:480MB(60 περιπτώσεις.×8MB)
3. περίληψη
Μετρήσαμε τον μέγιστο αριθμό περιπτώσεων που μπορεί να επεξεργαστεί ταυτόχρονα ο διακομιστής ιστού (Apache). Διαπιστώθηκε ότι ένα σύστημα περίπου 60 ατόμων μπορούσε να λειτουργήσει χωρίς προβλήματα με "CPU: 1core", "μνήμη: 512MB" και "SSD: 25GB".
Η έρευνα βασίζεται στην υπόθεση ότι κανένα άλλο λογισμικό δεν εκτελείται με οριακή απόδοση. Συνιστάται να επιλέξετε μια προδιαγραφή με λίγο περιθώριο, καθώς πρόκειται για μια οριακή τιμή.
Σας ευχαριστούμε που παρακολουθήσατε μέχρι το τέλος.
■INFORMATION
Κάντε κλικ εδώ για να μεταβείτε στην αρχική σελίδα ΠΛΗΡΟΦΟΡΙΕΣ.
■PROFILE
Κάντε κλικ εδώ για ένα προφίλ.
■Στοιχεία επικοινωνίας.
Για ερωτήσεις σχετικά με το άρθρο, παρακαλούμε επικοινωνήστε μαζί μας εδώ.