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

Μέτρηση 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 αλλά δεν κάνει καταγραφή

Δημοσ.

Τελικά το δοκίμασα και σε άλλο μηχάνημα και δουλευει αλλά μαλλον καθε 1λεπτο και 40 δευτερόλεπτα μηδενίζει...επιστρέφω στο throttlewatch

Δημοσ.

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

Δημοσ.

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

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

Δημοσ.

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

Δημοσ.

Το καλύτερο πρόγραμμα για τη δουλειά αυτή είναι το Performance Monitor (perfmon) των Windows! Μπορεί να καταγράφει οποιαδήποτε ένδειξη για αιώνες!!!

Δημοσ.

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

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

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

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