Loading feeds...

Software Stress tests

  • DataBlue
  • DataBlue
  • DataBlue
  • DataBlue
  • DataBlue
  • DataBlue
  • DataBlue
  • DataBlue
  • DataBlue
  • DataBlue
  • DataBlue
  • DataBlue
Εκτύπωση E-mail

ΔΙΑΔΙΚΑΣΙΑ ΠΡΟ-ΕΛΕΓΧΟΥ ΑΠΟΔΟΣΗΣ ΣΥΣΤΗΜΑΤΩΝ

 

Στόχος των διαδικασιών Stress test

 

Ο στόχος των διαδικασιών Stress Stest είναι ο έγκαιρος προσδιορισμός προβλημάτων απόδοσης πριν μια εφαρμογή βγει στην παραγωγή.


Ο έγκαιρος προσδιορισμός  προβλημάτων  απόδοσης μέσα από την διαδικασία του Stress Test μειώνει σημαντικά το κόστος υποστήριξης της εφαρμογής  καθώς η επιδιόρθωση προβλημάτων αφού η εφαρμογή βγει στην παραγωγή έχει τεράστιο κόστος. Παράλληλα  αυξάνει επίσης σημαντικά την αξιοπιστία της στους τελικούς χρήστες.


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

1. Την εξαγωγή μιας σχέσης μεταξύ του φόρτου του συστήματος και του χρόνου απόκρισής του. Για το φόρτο, σε μια τυπική web εφαρμογή, χρησιμοποιείται σα μονάδα μέτρησης ο αριθμός των requests ανά δευτερόλεπτο (req/sec). Τυπικά, όσο αυξάνεται ο αριθμός των req/sec, τόσο αυξάνεται ο χρόνος απόκρισης του συστήματος. Έτσι, αν τεθεί από τον οργανισμό ο μέγιστος αποδεκτός χρόνος απόκρισης, μπορεί να προσδιοριστεί το ανώτατο όριο req/sec, μέχρι το οποίο το σύστημα συμπεριφέρεται αποδεκτά (δηλαδή το ανώτατο φορτίο το οποίο μπορεί αυτό να δεχτεί).

2. Την παρατήρηση της συμπεριφοράς του συστήματος, όταν αυτό φτάσει στο όριό του. Γενικά, ο στόχος ενός stress test είναι το να φτάσει ένα σύστημα στο όριό του (δηλαδή να το κάνει μη αποκρίσιμο ή/και να το κάνει να αποτύχει). Σε αυτό το όριο, παρατηρείται η συμπεριφορά του συστήματος και –κυρίως- αν αυτό αποτυγχάνει «σωστά» (gracefully). Με τον όρο «σωστή» αποτυχία, εννοούμε την αποτυχία του συστήματος με τρόπο τέτοιο, που δεν επηρεάζει την επιχειρηματική λειτουργία του (για παράδειγμα, δεν καταλήγει σε ασυνεπή στοιχεία στη βάση δεδομένων).

3. Πρέπει να σημειωθεί ότι ο σκοπός της διαδικασίας των stress tests δεν είναι το να αιτιολογήσει την όποια απόδοση του συστήματος, αλλά μόνο να την καταγράψει. Για την αιτιολόγηση της απόδοσης (ή της μη απόδοσης) του συστήματος, συνίσταται η χρήση εργαλείων APM (Αpplication Performance Monitoring).

 

Τι περιλαμβάνει ο προ-έλεγχος της απόδοσης των εφαρμογών

 

Η διαδικασία μπορεί να επιμεριστεί σε επιμέρους διαδικασίες:

Load testing: είναι η δοκιμασία του συστήματος κάτω από συγκεκριμένο φορτίο. Το φορτίο αυτό μπορεί να είναι το αναμενόμενο, του οποίου η εκτίμησή του έχει βγει από παραγωγικά δεδομένα ή μπορεί να είναι και αυθαίρετο.


Stress testing: είναι η διαδικασία που αποσκοπεί στο να βρεθεί ένα ανώτατο όριο φορτίου του συστήματος. Τελικός σκοπός της είναι η αποτυχία του συστήματος (εκεί δηλαδή που αυτό γίνεται μη αποκρίσιμο). Σημαντικό επίσης είναι το να βρεθεί το πως το σύστημα συμπεριφέρεται σε μια τέτοια αποτυχία  (κυρίως το αν αφήνει τα δεδομένα του σε μια συνεπή κατάσταση).


Soak testing: είναι η δοκιμασία του συστήματος κάτω από συγκεκριμένο φορτίο, μόνο που αυτή τη φορά διαρκεί για μεγάλο χρονικό διάστημα. Σκοπός της δοκιμασίας αυτής είναι το να διαπιστωθεί η σταθερότητα του συστήματος (διαπίστωση ύπαρξης memory leaks κ.λ.π.).


Spike testing: είναι η δοκιμασία που περιλαμβάνει την ξαφνική και απότομη αύξηση του φορτίου του συστήματος. Σκοπός της διαδικασίας είναι το να εξακριβωθεί το πως συμπεριφέρεται ένα σύστημα σε παρόμοιες ξαφνικές αλλαγές.


Συνήθως, η έννοια του ελέγχου της απόδοσης ενός συστήματος, μεταφράζεται σε Stress testing. Είναι όμως σημαντικό ένας οργανισμός ο οποίος ενδιαφέρεται να ελέγξει  τις εφαρμογές του να είναι κατανοήσει την σημασία κάθε μέρους της παραπάνω διαδικασίας, και να επιλέξει ποιες αν όχι όλες τις διαδικασίες θα ενεργοποιήσει.