1 Α. Βαφειάδης Τ.Ε.Ι Θεσσαλονίκης – Τμήμα Πληροφορικής Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Εργαστηριακό Μέρος Περίληψη Εξάμηνο: Έβδομο Καθηγητής: Α. Βαφειάδης 2007
2 Α. Βαφειάδης Αποτίμηση απόδοσης Συστήματος Με τον όρο performance evaluation (αποτίμηση απόδοσης) εννοούμε την εύρεση των αριθμητικών τιμών ή των στατιστικών μεγεθών ή κατανομών των δεικτών απόδοσης ενός υπολογιστικού συστήματος ή των μονάδων του ή ενός δικτύου ή ενός προγράμματος (συστήματος ή εφαρμογής)
3 Α. Βαφειάδης Γιατί πρέπει να αποτιμήσουμε την απόδοση ενός συστήματος; Βελτίωση υπάρχοντος συστήματος (improvement) Ένας από τους βασικούς στόχους της αποτίμησης της απόδοσης είναι και η βελτίωση της απόδοσης των συστημάτων που βρίσκονται σε λειτουργία(system tuning). Προμήθεια νέου συστήματος(Procurement) Κατά τη φάση της επιλογής ενός νέου συστήματος πρέπει να γνωρίζουμε αν το σύστημα Α είναι καλύτερο από το σύστημα Β με γνώμονα πάντα της ανάγκες μας.
4 Α. Βαφειάδης Γιατί πρέπει να αποτιμήσουμε την απόδοση ενός συστήματος; (συνέχεια) Σχεδιασμός νέου συστήματος (design) Στη διάρκεια της φάσης του σχεδιασμού χρειάζεται να γνωρίζουμε τη μελλοντική του απόδοση, ώστε να είμαστε σίγουροι ότι θα ανταποκριθεί στους στόχους που τέθηκαν αρχικά. Προγραμματισμός χωρητικότητας (Capacity planning) Χρειάζεται να γνωρίζουμε αν η χωρητικότητα (μέγιστές τιμές των δεικτών απόδοσης) ενός συστήματος θα είναι αρκετή για να ανταποκριθεί στις απαιτήσεις του περιβάλλοντος (workload) για ένα επιθυμητό επίπεδο απόδοσής
5 Α. Βαφειάδης Workload – Capacity planning Workload (φόρτος εργασίας) είναι το σύνολο των απαιτήσεων των χρηστών ενός συστήματος από το ίδιο το σύστημα σε ένα καθορισμένο χρονικό διάστημα. Capacity planning (προϋπολογισμός της χωρητικότητας) είναι ο εύρεση του αριθμού και των μέγιστων τιμών της χωρητικότητας των μονάδων ενός συστήματος (π.χ Disk Capacity)
6 Α. Βαφειάδης Models Model είναι ένα αντικείμενο το οποίο χρησιμοποιείται από κάποιον εξ αιτίας της ομοιότητας του προς ένα πραγματικό σύστημα, ως προς την συμπεριφορά, την δομή και την λειτουργία του. Model είναι μια αφαίρεση της πραγματικότητας Στην περίπτωση μας, ονομάζουμε computer model ή Network model είναι ένα πρόγραμμα που προσπαθεί να επιλύσει ή να προσεγγίσει τους δείκτες απόδοσης ενός υπολογιστή ή ενός δικτυού υπολογιστών. Στη μελέτη της απόδοσης συστημάτων χρησιμοποιούνται Τα αναλυτικά μοντέλα (analytic models) Τα μοντέλα προσομοίωσης (simulation models)
7 Α. Βαφειάδης Αναλυτικό μοντέλο – Μοντέλο προσομοίωσης Το αναλυτικό μοντέλο χρησιμοποιεί μαθηματικές υποθέσεις, θεωρίες και εξισώσεις από τον χώρο των στοχαστικών μαθηματικών για την περιγραφή του πραγματικού συστήματος που πρόκειται να μελετήσουμε (π.χ θεωρία ουρών, operational analysis, προσέγγιση). Το μοντέλο προσομοίωσης είναι ένα πρόγραμμα υπολογιστή το οποίο μιμείται τις βασικές συμπεριφορές και λειτουργίες του πραγματικού υπό μελέτη συστήματος.
8 Α. Βαφειάδης Workload (φόρτος εργασίας) Workload (φόρτος εργασίας) είναι το σύνολο των απαιτήσεων των χρηστών ενός συστήματος από το ίδιο το σύστημα σε ένα καθορισμένο χρονικό διάστημα. Το σύνολο των απαιτήσεων των χρηστών καθορίζεται π.χ από: τον κώδικα των προγραμμάτων τα δεδομένα των προγραμμάτων τις εντολές προς το λειτουργικό σύστημα τις SQL σε Βάσεις δεδομένων τις HTTP απαιτήσεις Κ.λ.π
9 Α. Βαφειάδης Χαρακτηρισμός του Workload Η ποσοτική περιγραφή των χαρακτηριστικών ενός Workload (φόρτος εργασίας σε ορισμένο χρονικό διάστημα), ονομάζεται χαρακτηρισμός του Workload και γίνεται από παραμέτρους οι οποίες επηρεάζουν την συμπεριφορά του συστήματος.
10 Α. Βαφειάδης Workload Model Workload Model είναι μια τεχνητή αναπαράσταση ενός πραγματικού workload Τα Workload Models χρησιμοποιούνται για: την επιλογή ενός συστήματος το προγραμματισμό της χωρητικότητας τη βελτίωση της απόδοσης (performance tuning)
11 Α. Βαφειάδης Το Workload Model ή το test workload πρέπει να πληροί τους παρακάτω όρους Να μπορεί να επαναληφθεί Να είναι σχετικά σύντομο Να είναι αντιπροσωπευτικό Να εξαφανίζει τους περιορισμούς ασφαλείας που ενδέχεται να υπάρχουν για προγράμματα και δεδομένα και τα οποία συναντάμε κατά την διάρκεια των πραγματικών συνθηκών λειτουργίας Workload Model
12 Α. Βαφειάδης Ταξινόμηση των workload models Real : Αποτελείται από όλα τα αρχικά προγράμματα και δεδομένα που «τρέχουν» οι χρήστες κατά την διάρκεια της μετρούμενης περιόδου. Synthetic: Natural: Είναι ένα υποσύνολο του real workload. ( Ο αρχικός ορισμός του benchmark) Hybrid : Μίξη προγραμμάτων που αποσπάστηκαν από ένα πραγματικό workload και από προγράμματα που κατασκευάστηκαν για τον σκοπό της μέτρησης (artificial)
13 Α. Βαφειάδης Ταξινόμηση των workload models/1 Artificial: Executable workload είναι ένα workload το οποίο αποτελείται από ένα σύνολο από προγράμματα που κατασκευάστηκαν ειδικά για να αποτελέσουν ένα τεχνητό workload. Τα executable workloads “τρέχουν” στο πραγματικό υπό μελέτη σύστημα το οποίο χρησιμοποιεί κάποια τεχνική μέτρησης(hardware ή software) για τon υπολογισμό) των δεικτών απόδοσης Non executable είναι όλα τα δεδομένα που δίδονται στα αναλυτικά μοντέλα και τα μοντέλα προσομοίωσης
14 Α. Βαφειάδης Ταξινόμηση των workload models/2 Instruction mixes : Ένα πρόγραμμα το οποίο αντικατοπτρίζει τη σχετική συχνότητα των CPU εντολών γλώσσας μηχανής (π.χ πολλές load/store εντολές, και μερικές πράξεις ακέραιες ή κινητής υποδιαστολής). Kernels: Μικρές ρουτίνες κώδικά ο οποίος υπάρχει συνήθως μέσα σε εφαρμογές των χρηστών (π.χSieve, Puzzle, tree searching, Acckerman’s function, Sorting, αντιστροφή πινάκων) Synthetic programs: Μικρά προγράμματα τα οποία ελέγχουν συμπεριφορές του συστήματος ή του δικτύου οι οποίες όμως δεν σχετίζονται με συγκεκριμένες εφαρμογές (π.χ disk test για τον έλεγχο του χρόνου προσπέλασης στον δίσκο, ή τον χρόνο ανταπόκρισης ενός απομακρυσμένου δικτυακού κόμβου.
15 Α. Βαφειάδης Ταξινόμηση των workload models /3 Traces or scripted applications: Μια σειρά από διαφορετικές εφαρμογές οι οποίες συνδυάζονται μεταξύ τους με scripts (shell, perl) για να προσομοιάσουν (μιμηθούν) τυπικές συμπεριφορές ενός τυπικού χρήστη (π.χ να προσομοιάσουν την δικτυακή συμπεριφορά ενός τυπικού χρήστη). Ονομάζονται και σενάρια. Real applications: Π.χ video applications, Συνεχής χρεώσεις πιστώσεις(τράπεζες)
16 Α. Βαφειάδης Benchmarks Αρχικός ορισμός: Ονομαζόταν έτσι τα natural Workload Models Σημερινός ορισμός: Ονομάζεται έτσι κάθε artificial workload model. Κύρια χρήση: Η μέτρηση της απόδοσης ενός υπολογιστή ή τμημάτων του, δικτύων, βάσεων δεδομένων, web servers, με στόχο την επιλογή της πιο συμφέρουσας αγοράς. Συμφέρουσα αγορά θεωρείται αυτή που έχει τον μικρότερο λόγο κόστους/απόδοσης
17 Α. Βαφειάδης Μεταβλητές συστήματος Για την μελέτη ενός συστήματος απαιτείται η γνώση των τιμών των παρακάτω μεταβλητών: Μεταβλητές που αφορούν τα φυσικά χαρακτηριστικά του υλικού και του λογισμικού (π.χ CPU clock, Disk access time, memory size, page size κ.λ.π) Μεταβλητές που αφορούν το workload που χρησιμοποιούμε κατά την περίοδο της μέτρησης (π.χ μέση τιμή χρόνου επεξεργασίας, κατανομή του χρόνου άφιξης των απαιτήσεων των χρηστών κ.λ.π). Μεταβλητές που αφορούν την απόδοσης του συστήματος (δείκτες απόδοσης)
18 Α. Βαφειάδης Διάταξη μεταβλητών συστήματος
19 Α. Βαφειάδης Δείκτες Απόδοσης Με τους δείκτες απόδοσης ποσοτικοποιούμε την απόδοση ενός υπολογιστή Αυτοί που ενδιαφέρονται για τους δείκτες απόδοσης είναι: 1. Οι σχεδιαστές Συστημάτων 2. Οι διαχειριστές 3. Οι Αναλυτές και προγραμματιστές 4. Οι απλοί χρήστες Οι δείκτες διακρίνονται σε: Εξωτερικούς (αφορούν τους 3 και 4) Εσωτερικούς (αφορούν τους 1 και 2)
20 Α. Βαφειάδης Χρόνοι (γενικά) CPU execution time Ο χρόνος απασχόλησης της CPU από ένα πρόγραμμα χρήστη user CPU execution time System CPU execution time (windows XP task monitor, εντολή time στο UNIX ) Elapsed time ή turnaround time Ο χρόνος από την στιγμή έναρξης μέχρι την στιγμή λήξης της εκτέλεσης ενός προγράμματος Response time Ο χρόνος από την στιγμή που πατήσαμε το return σε μια διαλογική επικοινωνία μέχρι την στιγμή που λάβαμε απάντηση από το σύστημα
21 Α. Βαφειάδης Throughput (Παραγωγικότητα) Η παραγωγικότητα ορίζεται σαν, η ποσότητα του έργου που παράγεται από ένα σταθμό εξυπηρέτησης(computer system, computer device, network, database) στη μονάδα του χρόνου. Ορίζεται ανάλογα με το είδος του σταθμού και είναι: Ο αριθμός των προγραμμάτων που παράγονται στη μονάδα του χρόνου(Jobs/sec) Ο αριθμός των αιτήσεων που ικανοποιούνται ένα HTTP server (HHTP Req/sec) Ο αριθμός των συναλλαγών μιας βάσης δεδομένων (Transaction/sec) O αριθμός των Ι/Ο αιτήσεων που ικανοποιούνται από ένα δίσκο(I/O’s/sec)
22 Α. Βαφειάδης Διαθεσιμότητα (availability) και αξιοπιστία (reliability) H αξιοπιστία (reliability) ορίζεται σαν η πιθανότητα να συμβεί ένα λάθος ή μια βλάβη κατά την λειτουργία ενός συστήματος Σαν διαθεσιμότητα (availability) ορίζεται το ποσοστό του συνολικού χρόνου, κατά την διάρκεια του οποίου το σύστημα διατίθεται στους χρήστες.
23 Α. Βαφειάδης Εσωτερικοί δείκτες απόδοσης Χρησιμοποίηση (utilization) Χρησιμοποίηση (utilization) μιας μονάδας (π.χ CPU) ορίζουμε σαν το ποσοστό του συνολικού χρόνου, κατά τη διάρκεια του οποίου ήταν απασχολημένη. Αν κατά το διάστημα της μέτρηση που είχε μήκος Τ tot ή μονάδα Κ δέχθηκε N αιτήσεις για εξυπηρέτηση με χρόνους Τ i (i=1…..N) η κάθε μία, τότε
24 Α. Βαφειάδης Βαθμός πολυπρογραμματισμού (Multiprogramming Level) Είναι το πλήθος των προγραμμάτων τα οποία ανταγωνίζονται μεταξύ τους, την ίδια χρονική στιγμή για την απόκτηση των μονάδων ενός υπολογιστικού συστήματος Paging rate Ορίζουμε έτσι την συχνότητα με την οποία τα προγράμματα αναφέρονται σε πληροφορίες οι οποίες δεν είναι παρούσες στη κύρια μνήμη. Αυτές οι αναφορές ονομάζονται page faults και γίνονται αιτία να μεταφερθούν πληροφορίες από ένα μαγνητικό δίσκο στη κύρια μνήμη και πολλές φορές το αντίθετο
25 Α. Βαφειάδης Επικάλυψη (overlap) Επικάλυψη ονομάζουμε το ποσοστό του συνολικού χρόνου, κατά τη διάρκεια του οποίου δύο ή περισσότερες μονάδες απασχολούνται ταυτόχρονα. (Άθροισμα χρόνων CPU και Ι/Ο μονάδων)-(Χρόνος μέτρησης) Χρόνος μέτρησης Overlap = = 44,4%
26 Α. Βαφειάδης Σύνοψη δεικτών απόδοσης Εξωτερικοί δείκτες Turnaround Time Response Time Throughput Capacity Availability Reliability Εσωτερικοί δείκτες Utilization Overlap Multiprogramming Level Paging Rate
27 Α. Βαφειάδης Ορισμοί Clock Cycle: Το διάστημα μεταξύ δύο γεγονότων ρολογιού (π.χ ακμές ανόδου) Clock rate : Η συχνότητα των κύκλων στη μονάδα του χρόνου Clock cycle time (period) = η διάρκεια ενός Clock Cycle (σε ns) Clock rate = 1/clock cycle time (σε MΗz)
28 Α. Βαφειάδης Ορισμοί - τύποι Clock cycles/instruction (CPI) = = Πλήθος κύκλων/εντολή = = ο μέσος αριθμός των κύκλων που χρειάζεται μια εντολή γλώσσας μηχανής για να εκτελεστεί Instruction count (IC) = = πλήθος εντολών = = το συνολικό πλήθος των εντολών ενός προγράμματος Cycles /instruction (CPI) = πλήθος κύκλων ανά πρόγραμμα = πλήθος εντολών προγράμματος
29 Α. Βαφειάδης CPU Time προγράμματος CPU time = πλήθος CPU κύκλων Χ περίοδος κύκλου = πλήθος CPU κύκλων = Clock rate CPU time = πλήθος εντολών Χ πλήθος κύκλων ανά εντολή Χ περίοδος κύκλου πλήθος εντολών Χ πλήθος κύκλων ανά εντολή CPU time = Clock rate
30 Α. Βαφειάδης Ο βασικός Τύπος ( CPU time πρoγράμματος) CPU time = Πλήθος εντολών (IC) X X Πλήθος κύκλων / εντολή (CPI) Χ X περίοδος κύκλου (CP) CPU time = IC x CPI x CC Instruction set Architecture + Τεχνολογία Compiler Instruction set Architecture + Οργάνωση Τεχνολογία Hardware + Οργάνωση Υποθέτουμε ότι όλες οι εντολές εκτελούνται σε ίδιους κύκλους
31 Α. Βαφειάδης Ο γενικευμένος βασικός τύπος Υποθέτουμε ότι ένα πρόγραμμα αποτελείται από Ν διαφορετικό πλήθος εντολών η ομάδων εντολών γλώσσας μηχανής όπου ICi παριστάνει το πλήθος των κύκλων της εντολής i στην οποία αντιστοιχεί το CPIi
32 Α. Βαφειάδης Amdahl’s Low SO = Ολική βελτίωση FE = Ποσοστό μέρους που βελτιώνεται SE = Μερική βελτίωση FE 1
33 Α. Βαφειάδης Amdahl’s Low (Πολλαπλές Βελτιώσεις) FEι = Ποσοστό μέρους ι που βελτιώνεται SEι = Μερική βελτίωση ι