Φόρτωση δοκιμών διακομιστών Ιστού με Εργαλείο συγκριτικής αξιολόγησης Siege


Το να γνωρίζετε πόση επισκεψιμότητα μπορεί να αντέξει ο διακομιστής ιστού σας όταν βρίσκεται σε πίεση είναι απαραίτητο για τον σχεδιασμό της μελλοντικής ανάπτυξης του ιστότοπου ή της εφαρμογής σας. Χρησιμοποιώντας το εργαλείο που ονομάζεται siege, μπορείτε να εκτελέσετε μια δοκιμή φόρτωσης στον διακομιστή σας και να δείτε πώς λειτουργεί το σύστημά σας υπό διαφορετικές συνθήκες.

Μπορείτε να χρησιμοποιήσετε το siege για να αξιολογήσετε τον όγκο των δεδομένων που μεταφέρθηκαν, τον χρόνο απόκρισης, τον ρυθμό συναλλαγής, την απόδοση, τη συγχρονικότητα και πόσες φορές ο διακομιστής επέστρεψε απαντήσεις. Το εργαλείο έχει τρεις τρόπους λειτουργίας, στους οποίους μπορεί να λειτουργήσει – παλίνδρομο, προσομοίωση διαδικτύου και ωμή δύναμη.

Σημαντικό: Η Πολιορκία θα πρέπει να εκτελείται μόνο σε διακομιστές που κατέχετε ή σε αυτούς έχετε ρητή άδεια δοκιμής. Σε ορισμένες χώρες, η χρήση πολιορκίας σε μη εξουσιοδοτημένους ιστότοπους μπορεί να θεωρηθεί έγκλημα.

Εγκατάσταση του Siege HTTP Load Testing Utility σε Linux

Το Siege είναι πολλαπλών πλατφορμών και μπορεί να εγκατασταθεί στις διανομές Ubuntu/Debian και CentOS/RHEL χρησιμοποιώντας τις ακόλουθες εντολές.

Για να εγκαταστήσετε το Siege στο Debin/Ubuntu, μπορείτε να εκτελέσετε:

sudo apt install siege

Για το CentOS/RHEL, πρέπει να εγκαταστήσετε και να ενεργοποιήσετε το αποθετήριο για να εγκαταστήσετε το siege με:

yum install epel-release
yum install siege

Εναλλακτικά, μπορείτε να δημιουργήσετε το Siege από την πηγή. Για αυτόν τον σκοπό θα χρειαστεί να έχετε εγκαταστήσει πακέτα build-essential και πακέτα ανάπτυξης.

sudo apt install build-essential       #Ubuntu/Debian
yum groupinstall 'Development Tools'   #CentOS/RHEL

Στη συνέχεια, μπορείτε να κάνετε λήψη του Siege χρησιμοποιώντας την εντολή wget και να το εγκαταστήσετε από πηγές όπως φαίνεται.

wget http://download.joedog.org/siege/siege-latest.tar.gz
tar -zxvf siege-latest.tar.gz
cd siege-*/
sudo ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
sudo make && make install

Ρύθμιση παραμέτρων Siege HTTP Load Testing Utility σε Linux

Αφού ολοκληρώσετε την εγκατάσταση, μπορείτε να προσαρμόσετε το αρχείο διαμόρφωσης siege. Βρίσκεται στο /etc/siege/siegerc. Σε περίπτωση που έχετε αποφασίσει να δημιουργήσετε το πακέτο από την πηγή, θα πρέπει να εκτελέσετε:

sudo siege.config

Αυτό θα δημιουργήσει το αρχείο siege.conf που βρίσκεται στο σπίτι του χρήστη σας ~/.siege/siege.conf.

Τα περιεχόμενα του αρχείου θα πρέπει να είναι κάπως έτσι. Σημειώστε ότι έχω καταργήσει τον σχολιασμό των οδηγιών logfile και time:

cat siegerc |egrep -v "^$|#"
Δείγμα εξόδου
logfile = $(HOME)/var/log/siege.log
verbose = false
color = on
quiet = false
show-logfile = true
logging = false
gmethod = HEAD
parser = true
nofollow = ad.doubleclick.net
nofollow = pagead2.googlesyndication.com
nofollow = ads.pubsqrd.com
nofollow = ib.adnxs.com
limit = 255
protocol = HTTP/1.1
chunked = true
cache = false
connection = close
concurrent = 25
time = 1M
delay = 0.0
internet = false
benchmark = false
accept-encoding = gzip, deflate
url-escaping = true
unique = true

Με την τρέχουσα διαμόρφωση, το siege θα μιμηθεί 25 ταυτόχρονους χρήστες σε διάστημα 1 λεπτού.

Είστε τώρα έτοιμοι να εκτελέσετε την πολιορκία σας.

Δοκιμή φόρτωσης ιστότοπου με το βοηθητικό πρόγραμμα Siege Benchmarking

Η εκτέλεση του siege είναι αρκετά εύκολη, χρειάζεται μόνο να καθορίσετε τον ιστότοπο που θέλετε να δοκιμάσετε ως εξής:

siege example.com

Εάν η διαθεσιμότητα παραμένει στο 100% και δεν υπάρχουν αποτυχημένες συνδέσεις, το σύστημά σας πήγε καλά και δεν υπήρχαν προβλήματα. Θα πρέπει επίσης να προσέχετε τον χρόνο απόκρισης.

Εκτελέστε Siege Against Multiple Websites

Μπορείτε να δοκιμάσετε πολλές διευθύνσεις URL, ρυθμίζοντας την πολιορκία για να τις διαβάσετε από το αρχείο. Μπορείτε να περιγράψετε τις διευθύνσεις URL στο /usr/local/etc/urls.txt ως εξής:

Τώρα για να πείτε στο siege να δοκιμάσει τις διευθύνσεις URL από το αρχείο, χρησιμοποιήστε την επιλογή -f ως εξής:

siege -f /usr/local/etc/urls.txt

Μπορείτε επίσης να χρησιμοποιήσετε επιλογές γραμμής εντολών, εάν θέλετε να δοκιμάσετε διαφορετικές ρυθμίσεις από αυτές που περιγράφονται στο αρχείο διαμόρφωσης.

  • -C – καθορίστε το δικό σας αρχείο διαμόρφωσης.
  • -q – καταστέλλει την έξοδο της πολιορκίας.
  • -g – Λήψη, κατεβάστε τις κεφαλίδες HTTP και εμφανίστε τη συναλλαγή. Χρήσιμο για εντοπισμό σφαλμάτων.
  • -c – ο αριθμός των ταυτόχρονων χρηστών, η προεπιλογή είναι 10.
  • -r – πόσες φορές να εκτελέσετε τη δοκιμή.
  • -t – πόσος χρόνος για την εκτέλεση της δοκιμής. Μπορείτε να καθορίσετε S, M ή H πχ: –time=10S για 10 δευτερόλεπτα.
  • -d – τυχαία καθυστέρηση πριν από κάθε αίτημα.
  • -b – δεν υπάρχουν καθυστερήσεις μεταξύ των αιτημάτων.
  • -i – προσομοίωση χρήστη. Χρησιμοποιείται για να χτυπήσει τυχαίες διευθύνσεις URL.
  • -f – δοκιμή διευθύνσεων URL από καθορισμένο αρχείο.
  • -l – αρχείο καταγραφής.
  • -H – Προσθέστε μια κεφαλίδα για αίτημα.
  • -A – καθορίστε έναν παράγοντα χρήστη.
  • -T – Ορίζει το Content-Type σε αίτημα.
  • --no-parser – NO PARSER, απενεργοποιήστε τον αναλυτή σελίδας HTML.
  • --no-follow – μην ακολουθείτε ανακατευθύνσεις HTTP.
συμπέρασμα

Το Siege είναι ένα ισχυρό εργαλείο για τη μέτρηση της αξιοπιστίας του συστήματός σας όταν βρίσκεται υπό υψηλό φορτίο. Μπορεί να χρησιμοποιηθεί από προγραμματιστές ιστού για να δοκιμάσουν τον κώδικά τους όταν ο ιστότοπος είναι υπό πίεση. Θα πρέπει πάντα να εκτελείτε τις δοκιμές σας με προσοχή, καθώς ο δοκιμασμένος διακομιστής μπορεί να γίνει απρόσιτος κατά τη διάρκεια της αξιολόγησης.