Το AB είναι συντομογραφία του ApacheBench.
Η εντολή ab δημιουργεί πολλαπλά νήματα ταυτόχρονης πρόσβασης για την προσομοίωση πολλών επισκεπτών που έχουν πρόσβαση σε μια διεύθυνση URL ταυτόχρονα. Οι δοκιμαστικοί στόχοι του βασίζονται σε URL, επομένως μπορεί να χρησιμοποιηθεί για τη δοκιμή τόσο του άγχους φόρτωσης apache όσο και άλλων πιέσεων διακομιστή ιστού όπως nginx, lighthttp, tomcat, IIS κ.λπ.
Η εντολή ab έχει χαμηλές απαιτήσεις για τον υπολογιστή που εκδίδει το φορτίο και δεν καταλαμβάνει πολλή CPU ή μνήμη. Ωστόσο, θα προκαλέσει τεράστιο φορτίο στον διακομιστή-στόχο και η αρχή του είναι παρόμοια με τις επιθέσεις CC. Πρέπει επίσης να δώσετε προσοχή στη δοκιμή και τη χρήση του μόνοι σας, διαφορετικά θα έχετε πάρα πολύ φορτίο ταυτόχρονα. Μπορεί να προκαλέσει εξάντληση των πόρων του διακομιστή-στόχου και σε σοβαρές περιπτώσεις, ακόμη και να προκαλέσει σφάλμα.
1. Εισαγωγή στο Apache Bench
Το ApacheBench είναι ένα εργαλείο δοκιμής ακραίων καταστάσεων ιστού που συνοδεύεται από διακομιστές Apache, με συντομογραφία ab. Το AB είναι επίσης ένα εργαλείο γραμμής εντολών με χαμηλές εγγενείς απαιτήσεις για την εκκίνηση ωφέλιμων φορτίων και πολλά νήματα ταυτόχρονης πρόσβασης μπορούν να δημιουργηθούν σύμφωνα με την εντολή AB, προσομοιώνοντας πολλούς επισκέπτες που έχουν πρόσβαση σε μια συγκεκριμένη διεύθυνση URL ταυτόχρονα, ώστε να μπορεί να χρησιμοποιηθεί για τη δοκιμή της πίεσης φορτίου του διακομιστή προορισμού. Γενικά, το εργαλείο AB είναι μικρό και απλό, γρήγορο στην εκμάθηση και μπορεί να παρέχει τους βασικούς δείκτες απόδοσης που χρειάζεστε, αλλά δεν υπάρχουν γραφικά αποτελέσματα και δεν μπορεί να παρακολουθηθεί.
2. Εγκατάσταση πάγκου Apache
Πρώτα, πρέπει να εγκαταστήσετε τον διακομιστή Apache, να κατεβάσετε τη διεύθυνση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.,
Ο υπολογιστής μου είναι ένα σύστημα win10 64-bit, οπότε κατέβασα το "httpd-2.4.33-win64-VC15.zip", σύνδεσμος:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Συνιστάται η λήψη της πιο πρόσφατης έκδοσης, καθώς οι παλαιότερες εκδόσεις του ab δεν υποστηρίζουν την παράμετρο -r.
3. Χρήση πάγκου Apache
Κατανοήστε τις παραμέτρους
Περιγραφή παραμέτρου: Μορφή: ab [επιλογές] [http://]hostname[:p ort]/path
-n αιτήματα Αριθμός αιτημάτων προς εκτέλεση //Ο συνολικός αριθμός αιτημάτων που υποβλήθηκαν σε αυτήν τη δοκιμή -c concurrency Αριθμός πολλαπλών αιτημάτων για υποβολή // Αριθμός αιτημάτων (ή ταυτόχρονης χρήσης) που δημιουργούνται ταυτόχρονα -t χρονικό όριο Δευτερόλεπτα έως το μέγιστο. Αναμονή για απαντήσεις //Ο μέγιστος αριθμός δευτερολέπτων που εκτελείται μια δοκιμή από προεπιλογή. -r Μην βγαίνετε στην υποδοχή λαμβάνετε σφάλματα. Ρίξτε μια εξαίρεση για να συνεχίσετε τη δοκιμαστική εργασία -p postfile Αρχείο που περιέχει δεδομένα στο POST // Ένα αρχείο που περιέχει δεδομένα που πρέπει να είναι POST, σε μορφή αρχείου όπως "p1=1&p2=2". Η μέθοδος χρήσης είναι -p 111.txt
-T τύπος περιεχομένου Κεφαλίδα τύπου περιεχομένου για POSTing Η κεφαλίδα τύπου περιεχομένου που χρησιμοποιείται για τα δεδομένα POST, όπως -T "application/x-www-form-urlencoded". (συν-π) -v verbosity Πόσες πληροφορίες αντιμετώπισης προβλημάτων για εκτύπωση Ορίστε το επίπεδο λεπτομέρειας για την εμφάνιση πληροφοριών – μια τιμή 4 ή μεγαλύτερη θα εμφανίζει πληροφορίες κεφαλίδας, μια τιμή 3 ή μεγαλύτερη θα εμφανίζει έναν κωδικό απόκρισης (404, 200, κ.λπ.) και μια τιμή 2 ή μεγαλύτερη θα εμφανίζει προειδοποιήσεις και άλλες πληροφορίες. -V εμφανίζει τον αριθμό έκδοσης και εξέρχεται. -C χαρακτηριστικό Προσθήκη cookie, π.χ. -C "c1=1234,c2=2,c3=3" (επαναλαμβανόμενο) -C cookie-name=value Προσθέστε ένα cookie στη γραμμή αιτήματος:. Η τυπική φόρμα είναι ένα ζεύγος παραμέτρων name=value. Αυτή η παράμετρος μπορεί να επαναληφθεί, διαιρούμενη με κόμμα. Συμβουλή: Μπορείτε να χρησιμοποιήσετε την αρχή υλοποίησης περιόδου σύνδεσης για να μεταβιβάσετε την παράμετρο JSESSIONID για να επιτύχετε τη λειτουργία διατήρησης της περιόδου σύνδεσης, όπως -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Εκτύπωση αποτελεσμάτων σε πίνακες HTML // Έξοδος αποτελεσμάτων σε μορφή πίνακα HTML. Από προεπιλογή, είναι ένας πίνακας με δύο στήλες πλάτους σε λευκό φόντο. -Χρησιμοποιώ το HEAD αντί για το GET -x attributes Συμβολοσειρά για εισαγωγή ως χαρακτηριστικά πίνακα -y χαρακτηριστικά Συμβολοσειρά για εισαγωγή ως χαρακτηριστικά tr -z χαρακτηριστικά Συμβολοσειρά για εισαγωγή ως td ή th χαρακτηριστικά -H Προσθήκη αυθαίρετης γραμμής κεφαλίδας, π.χ. 'Accept-Encoding: gzip' Εισάγεται μετά από όλες τις κανονικές γραμμές κεφαλίδας. (επαναλαμβανόμενο) -A χαρακτηριστικό Προσθήκη βασικού ελέγχου ταυτότητας WWW, τα χαρακτηριστικά είναι όνομα χρήστη και κωδικός πρόσβασης διαχωρισμένα με άνω και κάτω τελεία. -P χαρακτηριστικό Προσθέστε τον βασικό έλεγχο ταυτότητας διακομιστή μεσολάβησης, τα χαρακτηριστικά είναι όνομα χρήστη και κωδικός πρόσβασης διαχωρισμένα με άνω και κάτω τελεία. -X proxy: διακομιστής μεσολάβησης θύρας και αριθμός θύρας για χρήση -V Εκτύπωση αριθμού έκδοσης και έξοδος -k Χρησιμοποιήστε τη δυνατότητα HTTP KeepAlive -d Να μην εμφανίζονται τα εκατοστημόρια του πίνακα που σερβίρονται. -S Μην δείχνετε εκτιμητές εμπιστοσύνης και προειδοποιήσεις. -g filename Έξοδος συλλεγμένων δεδομένων σε αρχείο μορφής gnuplot. -e filename Έξοδος αρχείου CSV με ποσοστά που εξυπηρετούνται -h Εμφάνιση πληροφοριών χρήσης (αυτό το μήνυμα) Υπάρχουν πολλές παράμετροι, γενικά μπορούμε να χρησιμοποιήσουμε παραμέτρους -c και -n. Για παράδειγμα:
Αποσυμπιέστε το "httpd-2.4.33-win64-VC15.zip", μεταβείτε στο \Apache24\bin και ξεκινήστε το με τη γραμμή εντολών cmd, όπως φαίνεται στο παρακάτω σχήμα:
Το SSL δεν έχει μεταγλωττιστεί σε? Δεν υπάρχει υποστήριξη https: Το SSL δεν έχει μεταγλωττιστεί. Δεν υπάρχει υποστήριξη https, πράγμα που σημαίνει ότι ο ιστότοπος δεν υποστηρίζει https.
Αποτελέσματα δοκιμών:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com Το SSL δεν έχει μεταγλωττιστεί σε? Δεν υπάρχει υποστήριξη HTTPS
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Αυτό είναι το ApacheBench, Έκδοση 2.3 <$Revision: 1826891 $> Πνευματικά δικαιώματα 1996 Adam Twiss, Zeus Technology Ltd,Η σύνδεση με υπερσύνδεσμο είναι ορατή. Με άδεια χρήσης στο The Apache Software Foundation,Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Συγκριτική αξιολόγησηwww.itsvse.com(κάνε υπομονή) Ολοκληρώθηκαν 100 αιτήματα Ολοκληρώθηκαν 200 αιτήματα Ολοκληρώθηκαν 300 αιτήματα Ολοκληρώθηκαν 400 αιτήματα Ολοκληρώθηκαν 500 αιτήματα Ολοκληρώθηκαν 600 αιτήματα Ολοκληρώθηκαν 700 αιτήματα Ολοκληρώθηκαν 800 αιτήματα Ολοκληρώθηκαν 900 αιτήματα Ολοκληρώθηκαν 1000 αιτήματα Ολοκληρώθηκαν 1000 αιτήματα
Λογισμικό διακομιστή: Όνομα κεντρικού υπολογιστή διακομιστή: www.itsvse.com Θύρα διακομιστή: 80
Διαδρομή εγγράφου: / Μήκος εγγράφου: 178 bytes
Επίπεδο Ταυτοχρονισμού: 10 Χρόνος δοκιμών: 44,916 δευτερόλεπτα Ολοκληρωμένα αιτήματα: 1000 Αποτυχημένα αιτήματα: 0 Μη 2xx απαντήσεις: 1000 Σύνολο μεταφερθέντων: 349000 bytes Μεταφορά HTML: 178000 bytes Αιτήματα ανά δευτερόλεπτο: 22.26 [#/δευτ.] (μέσος όρος) Χρόνος ανά αίτημα: 449,164 [ms] (μέσος όρος) Χρόνος ανά αίτημα: 44.916 [ms] (μέσος όρος, σε όλα τα ταυτόχρονα αιτήματα) Ρυθμός μεταφοράς: 7,59 [Kbytes/δευτ.] λήψη
Χρόνοι σύνδεσης (ms) min mean[+/-sd] διάμεσος max
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
Ποσοστό των αιτήσεων που επιδόθηκαν εντός ορισμένου χρονικού διαστήματος (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (το μεγαλύτερο αίτημα) Ανάλυση παραμέτρων:
Διαδρομή εγγράφου: Δοκιμαστική σελίδα Μήκος εγγράφου: Το μέγεθος της σελίδας Επίπεδο ταυτοχρονισμού: Ο αριθμός των ταυτοχρονισμών που δοκιμάστηκαν ταυτόχρονα Χρόνος που απαιτείται για τις δοκιμές: Η διάρκεια ολόκληρης της δοκιμής Ολοκληρωμένα αιτήματα: Ο αριθμός των αιτημάτων που ολοκληρώθηκαν Αποτυχημένες αιτήσεις: Ο αριθμός των αποτυχημένων αιτήσεων Σφάλματα εγγραφής: 0 Σύνολο μεταφερόμενων: Η ποσότητα του δικτύου που μεταφέρθηκε καθ' όλη τη διάρκεια της διαδικασίας Μεταφερόμενο HTML: Η ποσότητα του περιεχομένου HTML που μεταφέρεται κατά τη διάρκεια της διαδικασίας Αιτήματα ανά δευτερόλεπτο: Μία από τις πιο σημαντικές μετρήσεις, ισοδύναμη με συναλλαγές ανά δευτερόλεπτο στο LR και μέσος όρος σε παρένθεση, δείχνει ότι πρόκειται για μέσο όρο Χρόνος ανά αίτημα: Οι δύο πιο σημαντικές μετρήσεις, που ισοδυναμούν με τον μέσο χρόνο απόκρισης συναλλαγής στο LR, σε παρένθεση υποδεικνύουν ότι πρόκειται για μέσο όρο Χρόνος ανά αίτημα: Ο μέσος όρος του πραγματικού χρόνου εκτέλεσης για κάθε αίτημα σύνδεσης Ρυθμός μεταφοράς: Μέση κίνηση ανά δευτερόλεπτο στο δίκτυο, η οποία μπορεί να βοηθήσει στον αποκλεισμό του προβλήματος της υπερβολικής κίνησης δικτύου που προκαλεί μεγάλους χρόνους απόκρισης
|