parsifal Δημοσ. 28 Οκτωβρίου 2007 Μέλος Δημοσ. 28 Οκτωβρίου 2007 Είναι τόσο απλό που δε χρειάζεται καν σκριπτάκι. Για καταγραφή 25 ωρών π.χ., δίνουμε σε κονσόλα: >logman create counter CPULoad -o CPULoad.csv -f csv -si 1 -rf 25:00:00 -c "\Processor(_Total)\% Processor Time" Στον ίδιο κατάλογο, θα δημιουργηθεί το αρχείο CPULoad_000001.csv (ή με μεγαλύτερη αρίθμηση, αν υπάρχει ήδη από προηγούμενη καταγραφή) όπου καταγράφονται οι μετρήσεις ως comma seperated values. Από εκεί κι έπειτα, θα είναι εύκολο να σκαρώσω ένα μικρό προγραμματάκι σε C που να βγάζει το μέσο όρο. Ένα μικρό δείγμα του log: "(PDH-CSV 4.0) (GTB Standard Time)(-120)","\\CORE2DUO\Processor(_Total)\% Processor Time""10/28/2007 13:32:53.703","99.999989409894383" "10/28/2007 13:32:54.703","0.78125" "10/28/2007 13:32:55.703","0.78125" "10/28/2007 13:32:56.703","0" "10/28/2007 13:32:57.703","0" "10/28/2007 13:32:58.703","0" "10/28/2007 13:32:59.703","0.78125" "10/28/2007 13:33:00.703","1.5625" "10/28/2007 13:33:01.703","0" Με 35 χαρακτήρες ανά γραμμή, υπολογίζω ότι απαιτούνται περίπου 123KB/ώρα μέτρησης. Αν κάτι πάει στραβά, ο counter με το όνομα CPULoad μπορεί να σταματήσει χειροκίνητα με την εντολή: >logman stop CPULoad και να σβηστεί εντελώς ως οντότητα collection με: >logman delete CPULoad
parsifal Δημοσ. 28 Οκτωβρίου 2007 Μέλος Δημοσ. 28 Οκτωβρίου 2007 Λοιπόν; Έχει ξεκινήσει κανείς μέτρηση; Κανένα αποτέλεσμα από το miniBench; Βασικά...δεν ήθελα να γράψω σκέτο "up" ή "bump"!
parsifal Δημοσ. 30 Οκτωβρίου 2007 Μέλος Δημοσ. 30 Οκτωβρίου 2007 Μετά από μέτρηση 25 ωρών που έγινε με την εντολή που έδωσα σε προηγούμενο post, πήρα ένα αρχείο CSV μεγέθους 3.1 ΜΒ. Αποφάσισα οι 2 πρώτες γραμμές του αρχείου να αγνοούνται (η πρώτη δεν είναι μέτρηση καν, ενώ η 2η παρουσιάζει περίεργο αριθμό δεκαδικών ψηφίων σε σχέση με όλες τις επόμενες και απλά μου την έσπασε!). Οπότε, ανοίξτε το δικό σας CSV με έναν text editor, σβήστε τις και ξανασώστε το αρχείο. Πέρασα λοιπόν το αρχείο από ένα προγραμματάκι C (CPUAvg, ελέγxθηκε με updated Avira AntiVir). Ο πηγαίος κώδικας για όσους ενδιαφέρονται είναι ο παρακάτω: > #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { FILE *logfile; char linebuffer[50], sample_as_string[10], *index1, *index2; int VERBOSE_MODE = 0, num_samples = 0, num_quotes = 0; float sample_as_float = 0, sum = 0, cpuavg = 0; if(argc == 1) { printf("\nPROGRAM USAGE:\n CPUAvg <Logfile> [-verbose]\n\n"); return 1; } if(argc == 3 && !strcmp(argv[2], "-verbose")) VERBOSE_MODE = 1; if(!(logfile = fopen(argv[1], "r"))) { printf("\nERROR: File %s not existant or could not be opened.\n\n", argv[1]); return 2; } while((fgets(linebuffer, 50, logfile))) { num_samples++; index1 = linebuffer; num_quotes = 0; while(num_quotes < 3) { if(index1[0] == '\"') num_quotes++; index1++; } index2 = sample_as_string; while(index1[0] != '\"') { index2[0] = index1[0]; index1++; index2++; } index2[0] = '\0'; sample_as_float = atof(sample_as_string); if(VERBOSE_MODE) printf("Sample %d: %f\n", num_samples, sample_as_float); sum += sample_as_float; } cpuavg = sum / num_samples; printf("\nTotal CPU usage sum: %f\n\n", sum); printf("Number of samples in logfile: %d\n\n", num_samples); printf("Average CPU load estimation: %f\n\n", cpuavg); fclose(logfile); return 0; } Είναι στην ουσία ένας πρωτόγονος parser που σκάρωσα βιαστικά για να πάρουμε τις τιμές μεταξύ των 2 τελευταίων double quotes (") κάθε γραμμής του CSV και στο τέλος βγάζει το μέσο όρο. Τα δικά μου αποτελέσματα: C:\Programming\Projects\CPUAvg\Release>CPUAvg.exe C:\Temp\CPULoad_000001.csv Total CPU usage sum: 2357335.000000 Number of samples in logfile: 90003 Average CPU load estimation: 26.191738%
Dark_son20 Δημοσ. 30 Οκτωβρίου 2007 Δημοσ. 30 Οκτωβρίου 2007 den vazeis se ena post me vimata ti kanoume? (xoris epeksigiseis xoris pigeous apla ta vimata) thelo na help alla pragamatika varieme na do tin diadikasia pou prepei na kano se 2-3 post
parsifal Δημοσ. 30 Οκτωβρίου 2007 Μέλος Δημοσ. 30 Οκτωβρίου 2007 Ναι, γιατί όχι; Τα βήματα κωδικοποιημένα έχουν ως εξής: 1. Κατεβάζουμε το miniBench. Κλείνουμε όλα τα προγράμματα που μπορεί να καταναλώνουν επεξεργαστικούς πόρους, ανοίγουμε κονσόλα και τρέχουμε: >[font="Fixedsys"]miniBench.exe Dhrystone Whetstone iterations=10[/font] Καταγράφουμε και ποστάρουμε* το αποτέλεσμα, μαζί με info για τον επεξεργαστή μας αν θέλουμε (τύπος, χρονισμός). Δεν κλείνουμε την κονσόλα. 2. Δίνουμε: >[font="Fixedsys"]logman create counter CPULoad -o C:\CPULoad.csv -f csv -si 1 -rf 25:00:00 -c "\Processor(_Total)\% Processor Time"[/font] Θα αρχίσει αυτόματα καταγραφή που θα διαρκέσει 25ωρο (ή παραπάνω, αν θέλουμε να πειράξουμε την παράμετρο 25:00:00). 3. Όταν περάσουν οι 25 (ή όσες ορίσαμε) ώρες, ανοίγουμε το αρχείο CSV με έναν text editor, σβήνουμε τις 2 πρώτες γραμμές και το σώζουμε. 4. Τρέχουμε το πρόγραμμα CPUAvg που έφτιαξα γι' αυτόν το σκοπό. Παράδειγμα εκτέλεσης: >[font="Fixedsys"]CPUAvg.exe C:\CPULoad_000001.csv[/font] 5. Ποστάρουμε** το αποτέλεσμα. *Προαιρετικό... **Επίσης...
Dark_son20 Δημοσ. 30 Οκτωβρίου 2007 Δημοσ. 30 Οκτωβρίου 2007 ok to proi pou sxolaw apo tin doulia tha xoso ton 5600+ kai ton opti na to kanoun
Vatos_locos Δημοσ. 30 Οκτωβρίου 2007 Δημοσ. 30 Οκτωβρίου 2007 parsifal Help εγώ δεν ξέρω καν πως να το ξεκινήσω είμαι τελείως άσχετος τελικά
Vatos_locos Δημοσ. 30 Οκτωβρίου 2007 Δημοσ. 30 Οκτωβρίου 2007 οτι δεν κατάλαβα τίποτα πως να το τρέξω τρέχω το minibench και benchάρει μόνο του συνέχεια και ασταμάτητα
parsifal Δημοσ. 30 Οκτωβρίου 2007 Μέλος Δημοσ. 30 Οκτωβρίου 2007 Μήπως δεν το έτρεξες από κονσόλα με τις παραμέτρους που δίνω, αλλά με διπλό κλικ από τον Explorer;
Vatos_locos Δημοσ. 30 Οκτωβρίου 2007 Δημοσ. 30 Οκτωβρίου 2007 έτσι το έκανα από κονσόλα δεν τα κατάφερα έγγραφα αυτό που έγραψες αλλα με έγραφε στα ... του
parsifal Δημοσ. 30 Οκτωβρίου 2007 Μέλος Δημοσ. 30 Οκτωβρίου 2007 Κάτι μάλλον σου πάει πολύ στραβά, μόλις το ξαναέτρεξα με τις ίδιες παραμέτρους και τελειώνει στον Intel μου σε 21 sec: >[font="Fixedsys"]C:\Temp>miniBench.exe Dhrystone Whetstone iterations=10 Hello! Starting miniBench benchmark version 1.0... Executing Dhrystone( 20000000 )... constructor called for 20000000 iterations. Elapsed time (ms) 641 Dhrystone MIPS: 17758.3 destructor called Executing Whetstone( 50000 )... Elapsed time (ms) 1484 Executing Dhrystone( 20000000 )... constructor called for 20000000 iterations. Elapsed time (ms) 594 Dhrystone MIPS: 19163.4 destructor called Executing Whetstone( 50000 )... Elapsed time (ms) 1484 Executing Dhrystone( 20000000 )... constructor called for 20000000 iterations. Elapsed time (ms) 594 Dhrystone MIPS: 19163.4 destructor called Executing Whetstone( 50000 )... Elapsed time (ms) 1500 Executing Dhrystone( 20000000 )... constructor called for 20000000 iterations. Elapsed time (ms) 593 Dhrystone MIPS: 19195.7 destructor called Executing Whetstone( 50000 )... Elapsed time (ms) 1485 Executing Dhrystone( 20000000 )... constructor called for 20000000 iterations. Elapsed time (ms) 594 Dhrystone MIPS: 19163.4 destructor called Executing Whetstone( 50000 )... Elapsed time (ms) 1485 Executing Dhrystone( 20000000 )... constructor called for 20000000 iterations. Elapsed time (ms) 593 Dhrystone MIPS: 19195.7 destructor called Executing Whetstone( 50000 )... Elapsed time (ms) 1500 Executing Dhrystone( 20000000 )... constructor called for 20000000 iterations. Elapsed time (ms) 594 Dhrystone MIPS: 19163.4 destructor called Executing Whetstone( 50000 )... Elapsed time (ms) 1484 Executing Dhrystone( 20000000 )... constructor called for 20000000 iterations. Elapsed time (ms) 594 Dhrystone MIPS: 19163.4 destructor called Executing Whetstone( 50000 )... Elapsed time (ms) 1484 Executing Dhrystone( 20000000 )... constructor called for 20000000 iterations. Elapsed time (ms) 594 Dhrystone MIPS: 19163.4 destructor called Executing Whetstone( 50000 )... Elapsed time (ms) 1500 Executing Dhrystone( 20000000 )... constructor called for 20000000 iterations. Elapsed time (ms) 594 Dhrystone MIPS: 19163.4 destructor called Executing Whetstone( 50000 )... Elapsed time (ms) 1484 === miniBench benchmark version 1.0=== *** SUMMARY *** ===================================== Dhrystone test 4047.22 Whetstone test 2021.56 ===================================== ===================================== Total elapsed time: 20.94 s. CLOCKS_PER_SEC: 1000 miniBench benchmark completed. C:\Temp>[/font] Κάνε copy/paste την εντολή για να είσαι σίγουρος ότι δεν κάνεις λάθος...
Vatos_locos Δημοσ. 30 Οκτωβρίου 2007 Δημοσ. 30 Οκτωβρίου 2007 1. Κατεβάζουμε το miniBench. Κλείνουμε όλα τα προγράμματα που μπορεί να καταναλώνουν επεξεργαστικούς πόρους, ανοίγουμε κονσόλα και τρέχουμε: >[font="Fixedsys"]miniBench.exe Dhrystone Whetstone iterations=10[/font] Καταγράφουμε και ποστάρουμε* το αποτέλεσμα, μαζί με info για τον επεξεργαστή μας αν θέλουμε (τύπος, χρονισμός). Δεν κλείνουμε την κονσόλα. ορίστε το πρώτο βήμα το κατάφερα αλλα με λίγο χειμαδιό το μηχάνημα καθώς δοκίμαζα μια mnhmoula 512Mb 667Mhz Cl5 5-5-15 να δω μέχρι που πάει και έμεινα πραγματικά έκπληκτος για τα 20 ευρώ που είχα δώσει http://valid.x86-secret.com/show_oc.php?id=261490 το average load θα στο βγάλω μόλις τελειώσω με τα tweaks στο Bios
parsifal Δημοσ. 30 Οκτωβρίου 2007 Μέλος Δημοσ. 30 Οκτωβρίου 2007 Με γεια το board! Στήσε το πρώτα όπως θες και μετά τρέχεις τα benches και την καταγραφή, δε βιαζόμαστε. Ούτως ή άλλως, πρέπει να έχεις uptime τουλάχιστον 25 (ή όσες παραπάνω επιλέξεις) ώρες για να ολοκληρωθεί...
Vatos_locos Δημοσ. 30 Οκτωβρίου 2007 Δημοσ. 30 Οκτωβρίου 2007 ευχαριστώ το bench το έτρεξα τώρα γιατί και να το σκίσω στα tweaks άντε να βγάλω πολύ λίγο παραπάνω την σταθερότητα κοιτάω πιο πολύ τώρα και μετά τα ξεζουμίσματα πιάστηκα και με μια μνημούλα που πήρα και κάνω κάτι δοκιμες αλλα και το average load το σαββατοκύριακο πιστεύω θα στο έχω
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.