Προς το περιεχόμενο

Μέτρηση average CPU load - Συζήτηση


parsifal

Προτεινόμενες αναρτήσεις

Βλέποντας κατά καιρούς τα διάφορα θέματα σχετικά με επεξεργαστές, νέες τεχνολογίες, αύξηση χρονισμών/επιδόσεων από τις εταιρείες, αύξηση χρονισμών από τους χρήστες (overclocking) συνέλαβα την ιδέα για το παρόν thread. Ο σκοπός είναι να δούμε πόσο τοις εκατό της συνολικής επεξεργαστικής ισχύος των PCs μας εκμεταλλευόμαστε κατά μέσο όρο σε βάθος ορισμένου χρόνου. Αν βρείτε ενδιαφέρουσα την ιδέα και υπάρξει συμμετοχή με γνώμες, μπορούμε να καταλήξουμε σε μία συμφωνημένη μεθοδολογία για τις μετρήσεις. Αν κάνουμε το ίδιο και για τον τρόπο παρουσίασης των αποτελεσμάτων, μπορεί να γίνει ένα νέο thread με τα αποτελέσματα του κάθε χρήστη. Αν μάλιστα συγκεντρωθούν και τα αναλυτικά log files κάπου, μπορούμε να εξάγουμε σε 2ο χρόνο πολύ ενδιαφέροντα στατιστικά συμπεράσματα.

 

 

Κατ' αρχήν, όταν λέω «ορισμένο βάθος χρόνου» εννοώ τουλάχιστον ένα συνεχόμενο τυπικό 24ωρο χρήσης. Όσοι έχουν τη δυνατότητα να παρουσιάσουν αποτελέσματα για ακόμη μεγαλύτερο χρονικό διάστημα, τόσο το καλύτερο. Εδώ έχω να κάνω 3 παρατηρήσεις:

  • Θα πρέπει η χρήση να είναι όντως τυπική. Το γεγονός ότι τα αποτελέσματα της καταγραφής θα τύχουν παρουσίασης δε θα πρέπει να επηρεάσει το συνήθη τρόπο που χρησιμοποιούμε το PC μας. Μπορεί να ακούγεται χαζό και απλοϊκό, αλλά έχει τη σημασία του
  • Αμφιβάλλω για το κατά πόσο θα βγάζουν νόημα συμμετοχές από PCs που τρέχουν μονίμως κάποιο πρόγραμμα όπως Folding@Home, SETI@Home κλπ
  • Επειδή πρέπει να υπάρχει ενιαία μεθοδολογία, μάλλον θα πρέπει να περιοριστούμε σε PCs που τρέχουν Microsoft Windows

 

 

Όσοι θέλουν, μπορούν εδώ να δηλώσουν συμμετοχή και να προσφέρουν ιδέες για το benchmarking. Αν δω ότι υπάρχει ενδιαφέρον, θα παρουσιάσω και τη μεθοδολογία που έχω καταλήξει ως τώρα. Αλλιώς, ας είναι ένα ακόμη thread που θα καταλήξει σε μία μοναχική γωνίτσα της SQL βάσης του Insomnia :cry:

 

:-D

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 36
  • Δημ.
  • Τελ. απάντηση

Αν το λες λόγω δουλειάς/σπουδών, ξεκαθαρίζω ότι η μέθοδος που έχω στο μυαλό μου δε θα διεκδικήσει και δάφνες επιστημοσύνης! :lol:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ας πω και λίγα λόγια για τον τρόπο μέτρησης που έχω σκεφτεί.

 

 

Επειδή είναι καλό να γίνει στο τέλος κάποιου είδους αναγωγή στη μονάδα μέτρησης της ταχύτητας του επεξεργαστή, βρήκα ένα προγραμματάκι που αποτελεί τμήμα της μεγαλύτερης open source σουίτας OpenSourceMark, το miniBench. Δε χρειάζεται εγκατάσταση, είναι ένα απλό CLI exe εκτελέσιμο, οπότε από Start --> Run... --> cmd ανοίγουμε μία κονσόλα και πηγαίνουμε στο directory που αποθηκεύσαμε το exe. Αν το τρέξουμε απλά με το όνομά του, θα αρχίσει να εκτελεί ένα τεράστιο αριθμό από εξειδικευμένα benchmarks που θα διαρκέσουν πάρα πολύ χρόνο. Για λόγους απλότητας και χρηστικότητας, προτείνω να εκτελεστεί με τις παρακάτω παραμέτρους:

>[font="Fixedsys"]miniBench.exe Dhrystone Whetstone iterations=10[/font]

...που θα πάρει μέσο όρο 10 μετρήσεων και θα δώσει ένα αποτέλεσμα σαν το παρακάτω:

 

Hello! Starting miniBench benchmark version 1.0...

 

Executing Dhrystone( 20000000 )...

constructor called for 20000000 iterations.

Elapsed time (ms) 640

Dhrystone MIPS: 17786

destructor called

 

Executing Whetstone( 50000 )...

Elapsed time (ms) 1485

 

=== miniBench benchmark version 1.0===

*** SUMMARY ***

=====================================

Dhrystone test 4040.40

Whetstone test 2021.56

=====================================

=====================================

Total elapsed time: 2.13 s.

CLOCKS_PER_SEC: 1000

 

miniBench benchmark completed.

 

Τα δύο μεγέθη είναι αρκετά ενδεικτικά της ισχύος του επεξεργαστή μας, αφού καλύπτουν τόσο τις πράξεις με ακεραίους (Dhrystone test) όσο και αυτές κινητής υποδιαστολής (Whetstone test). Ένα μικρό πρόβλημα είναι ότι δεν υποστηρίζει SMP setups, άρα σε έναν AMD ή Intel διπύρηνο επεξεργαστή θα πρέπει να πολλαπλασιάσουμε με παράγοντα 2 * 0.95 (που είναι το τυπικό scalability αυτών των επεξεργαστών). Δηλαδή ο δικός μου θα πρέπει να έχει περίπου:

C2D E6600@3GHz

7676.76 Dhrystone marks

3840.96 Whetstone marks

 

 

Για την εξαγωγή του average CPU load, έψαξα αρκετά κάποια freeware λύση που να μπορεί να παίρνει και να καταγράφει μετρήσεις για μεγάλο χρονικό διάστημα, χωρίς επιτυχία. Ευτυχώς, λύση μου έδωσε ο φίλος Vatos_locos προτείνοντας το ThrottleWatch:

 

(EDIT: Δε λειτουργεί τελικά. Δείτε post #14)

 

throttlewatchmx2.png

 

Ομοίως δεν απαιτεί εγκατάσταση, υποστηρίζει πολυπύρηνους επεξεργαστές και από τις ρυθμίσεις του μπορούμε να επιλέξουμε το path και το όνομα του αρχείου όπου θα γίνεται η καταγραφή. Η μέτρηση ξεκινάει και σταματάει με F5. Απ' ότι παρατήρησα, το προγραμματάκι απαιτεί ελάχιστους πόρους και λογικά το ίδιο θα επηρεάζει ελάχιστα τις τιμές των μετρήσεων που παίρνει. Οπότε, μπορούμε να το αφήσουμε να τρέχει στο παρασκήνιο χωρίς να σχολούμαστε με αυτό και όταν περάσει το χρονικό διάστημα που θέλουμε, απλά το σταματάμε με F5. Το log file που θα παραχθεί στο τέλος του αναφέρει το Μ.Ο. που θέλουμε, αλλά για καταγραφές της τάξεως 24+ ωρών το μέγεθός του θα φτάνει μερικά MB (χοντρικά όχι πάνω από 5-10, απ' ότι υπολόγισα). Οπότε, καλό είναι να μην το ανοίξουμε με το Notepad των Windows που τρώει φρίκη με τόσο μεγάλα αρχεία κειμένου, αλλά με κάποιο άλλο όπως το Wordpad ή το Notepad++.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δυστυχώς, το ThrottleWatch σταματάει να καταγράφει αυτόματα στα 300sec. Κατάρα! Πάλι στο ψάξιμο. Τελικά μάλλον θα πρέπει να γίνει με το ενσωματωμένο των Windows...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Με το throttlewatch κατέγραψα για πάνω από 10 λεπτά τη δραστηριότητα του υπολογιστού χωρίς να σταματήσει καθόλου η εγγραφή και είδα μια μέση δραστηριότητα της τάξεως του 7%. Ένας άλλος τρόπος να μετρήσουμε το ποσοστο χρησης του επεξεργαστη είναι με το performance monitor των windows. Από το εκτέλεση/run γράφουμε perfmon και μας ξεκιναει τη μέτρηση. Θα ήθελα να δοκιμάσει καποιος αν δουλευει γιατί στο φορητό που δοκίμασα δουλευει θαυμάσια (τώρα τρέχω και το perfmon και το throttlewatch ταυτόχρονα για να συγκρίνω αποτελέσματα) ενώ σε έναν σταθερό που είχα την ευκαιρία ναι μεν ξεκινάει το perfmon αλλά δεν κάνει καταγραφή

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

δεν ξερω αν ειναι open source αλλα δεν παρατηρησα καποιο περιοισμο στα 300 δευτερολεπτα/5λεπτα. Συνεχιζει ασταματητι σε μενα και μπορω να πω οτι εχει και ενδιαφερον το ολο εγχειρημα...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

μετρηστε και εμενα μεσα(αν και τωρα τελευταια δν συμετεχω ενεργα λογο σχολειου)αλλα I'll try my best.

Παντως δν χρειαζετε να τα μετρησω ξερω ακριβως ποσο εχει avarage.Δν πεφτει κατω απο τα 52%και δν παει πανω απο 100% αρα μεσω ορο εχω καπου στα 70%(για Π4)τωρα για τον 6600 δν μπωρω να πω γτ εχει να περασει ρευμα μεσα απο το πηριτιω του κανενα 5μηνο αλλα wtf.Καταγραφη θα κανω αν αρχησω να κατεβαζω κανενα τορρεντακι.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ναι αλλα το λέω γιατί γραφεις ότι μηδενίζει μετά από κάποιο χρόνο έτσι αν είναι ανοιχτού κώδικα να το πάρει κάποιος να το παραμετροποίηση και να το κάνει να βγάζει το log κάπως σε πιο σωστή μορφή αν γίνετε πάντα αν δεν γίνετε δεν ξέρω κάποιο άλλο :-( πάντως από βδομάδα που θα στήσω το άλλο pc θα το μετρήσω και εγώ να δω τι θα μου βγάλει :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Έκανα λάθος για τo όριο των 300sec του ThrottleWatch. Τελικά ήταν 3000sec. Ήθελα να αποφύγω τη χρήση του Performance Monitor των Windows, για να μην μπλέξουμε με batch scripts και τέτοια, αλλά δε βλέπω να το γλυτώνουμε. Αυτήν τη στιγμή ετοιμάζω ένα σκριπτάκι που θα αρχίζει και θα σταματά ένα performance counter μέσω του logman.exe...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.


  • Δημιουργία νέου...