Κεντρικοί επεξεργαστές

Εικόνα: markos
Submitted by markos on Δευ, 05/03/2007 - 21:33

Οι κεντρικοί επεξεργαστές (CPU) είναι το κύριο χαρακτηριστικό ενός υπολογιστή, θα λέγαμε ο “εγκέφαλός” του. Οι περισσότεροι υπολογιστές έχουν έναν κεντρικό επεξεργαστή αν και έχουν αρχίσει να γίνονται πιο διαδεδομένοι και οι υπολογιστές με περισσότερους από έναν. Με αρχιτεκτονικές όπως Συμμετρική Πολυεπεξεργασία (Symmetric Multi-Processing, SMP) και Μη Ομοιόμορφη Προσπέλλαση μνήμης (Non-Uniform Memory Access, NUMA), μπορούμε πλέον να έχουμε υπολογιστές από 2-64 επεξεργαστές. Το Linux μπορεί να τους χρησιμοποιήσει όλους και να εκμεταλλευτεί τον καθένα ξεχωριστά, π.χ. διαμοιράζοντας τα προγράμματα να τρέχουν σε πολλούς επεξεργαστές, ώστε να μην έχουμε πτώση της απόδοσης όταν τρέχουμε πολλά προγράμματα.

Αρχιτεκτονική του επεξεργαστή

Ο κάθε επεξεργαστής ανήκει σε μια αρχιτεκτονική. Στο Debian αυτή η αρχιτεκτονική καθορίζει και τα πακέτα λογισμικού που μπορούμε να εγκαταστήσουμε στον υπολογιστή. Συνήθως, δεν υπάρχει θέμα σύγχυσης και το πιο πιθανόν είναι ότι θα έχετε αρχιτεκτονική IA32 ή (Intel Architecture 32-bit, ή x86 όπως αλλιώς λέγεται) ή amd64 (τους νέους 64άμπιτους Η/Υ), οι οποίες χαρακτηρίζουν τους περισσότερους προσωπικούς υπολογιστές σήμερα (τα γνωστά μας PC).

Εντούτοις, είναι πολλές φορές χρήσιμο να έχουμε επιπλέον πληροφορίες για την αρχιτεκτονική του επεξεργαστή μας και το Linux μας παρέχει τέτοια δυνατότητα με τις εξής εντολές:

# arch
i686

Η arch απλώς τυπώνει το είδος του επεξεργαστή, i386/i586/i686 αυτή η εντολή είναι αρκετά χρήσιμη σε σενάρια κελύφους, όταν π.χ. θέλουμε να εκτελέσουμε την κατάλληλη έκδοση για τον κάθε επεξεργαστή.

# uname -a
Linux silmaril 2.6.11.4 #2 SMP Fri Mar 18 10:42:05 EST 2005 i686 GNU/Linux

Μια πιο εξελιγμένη εντολή από την arch, η uname, μας παρέχει πληροφορίες για το όνομα του πυρήνα (στην προκειμένη περίπτωση Linux), το όνομα του υπολογιστή (silmaril) την έκδοση του πυρήνα (2.6.11.4 #2 με υποστήριξη SMP) με την ημερομηνία κατασκευής του, την αρχιτεκτονική (i686) και το όνομα του λειτουργικού συστήματος (GNU/Linux).

Ο ίδιος ο πυρήνας μας παρέχει πληροφορίες για το είδος του επεξεργαστή που χρησιμοποιεί, μέσω του εικονικού συστήματος αρχείων procfs και το αρχείο /proc/cpuinfo. Το αρχείο αυτό είναι ένα απλό αρχείο κειμένου το οποίο μπορούμε να τυπώσουμε με μια εντολή όπως η cat.

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 8
model name      : AMD Sempron(tm)   2400+
stepping        : 1
cpu MHz         : 1666.572
cache size      : 256 KB
physical id     : 0
siblings        : 1
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx
fxsr sse pni syscall mp mmxext 3dnowext 3dnow
bogomips        : 3268.60

Οι πληροφορίες που χαρακτηρίζουν κάθε επεξεργαστή είναι πάρα πολλές και συχνά διαφορετικές μεταξύ επεξεργαστών, αλλά υπάρχουν ορισμένα κοινά στοιχεία, όπως π.χ. ο αριθμός του επεξεργαστή (processor), το όνομα της εταιρείας κατασκευής (vendor_id), το όνομα του μοντέλου (model_name), η συχνότητα του επεξεργαστή (cpu MHz), το μέγεθος του L2 cache (cache size) και ένας απλός μετρητής απόδοσης (bogomips).

Χρήσιμα πακέτα: cpuid, microcode.ctl, set6x86, x86info.

Φόρτο του επεξεργαστή και χρόνος λειτουργίας

Πέρα από τις πληροφορίες για τα κατασκευαστικά χαρακτηριστικά του επεξεργαστή, πολύ πιο συχνά θα μας χρειαστεί να γνωρίζουμε σε ποιο ποσοστό λειτουργεί ο επεξεργαστής ή αλλιώς το φόρτο του επεξεργαστή. Το φόρτο του επεξεργαστή για ευκολία το έχουμε συνδέσει με κάποιους μετρητές. Οι μετρητές αυτοί δείχνουν μηδέν (0) όταν ο επεξεργαστής δεν έχει φόρτο (idle CPU), ή ένα (1) όταν τρέχει μια μόνο διεργασία, και περισσότερο όταν ο επεξεργαστής προσπαθεί να μειράσει το χρόνο του σε περισσότερες από μια διεργασίες.

Εδώ πρέπει να σημειώσουμε ότι σε κάθε στιγμή στο σύστημα τρέχουν πολλές δεκάδες διεργασίες. Τις περισσότερες φορές όμως, οι διεργασίες αυτές είναι σε κατάσταση αναμονής, περιμένοντας κάποιο γεγονός (event) να συμβεί, οπότε ξυπνούν και θα αρχίσουν την επεξεργασία του. Τότε θεωρούμε ότι ο επεξεργαστης έχει φόρτο από τις συγκεκριμένες διεργασίες. Όσο περισσότερες διεργασίες προσπαθούν να δεσμεύσουν τον επεξεργαστή τόσο υψηλότερο φόρτο έχουμε. Αν δηλαδή το σύστημα εμφανιστεί να έχει φόρτο 60, τότε 60 διεργασίες προσπαθούν να μοιραστούν το χρόνο ενός επεξεργαστή, και η απόδοση του συστήματος θα πέσει κατακόρυφα. Σε αυτήν την περίπτωση, θα πρέπει ή να αναβαθμίσουμε το σύστημά μας (με επιπλέον επεξεργαστή ή καλύτερο επεξεργαστή) ή αν κάτι τέτοιο δεν είναι δυνατόν, να ελαττώσουμε τον αριθμό των διεργασιών που εκτελούνται στο σύστημα.

Το φόρτο του συστήματος μπορούμε να το πληροφορηθούμε πολύ εύκολα με την εντολή uptime, η οποία μας δίνει και επιπλέον πληροφορίες, όπως την τρέχουσα ώρα του συστήματος, το χρόνο λειτουργίας του (το λεγόμενο uptime), τον αριθμό των χρηστών που είναι συνδεδεμένοι στο σύστημα, και τρεις μετρητές φόρτου, για το τελευταίο 1 λεπτό, και για τα τελευταία 5 και 15 λεπτά.

# uptime
 10:53:06 up 1 day, 13:43,  1 user,  load average: 0.09, 0.10, 0.09

ksysguardksysguard
Για την εμφάνιση του φόρτου υπάρχουν και άλλα προγράμματα που παρουσιάζουν με χρήσιμα γραφήματα τις μεταβολές των μετρητών αυτών και πιθανόν και άλλες επιπλέον πληροφορίες του συστήματος. Μερικά από αυτά τα προγράμματα είναι το (κλασσικό) xload, το gtop που λειτουργεί σε περιβάλλον GNOME και το ksysguard που περιλαμβάνεται στο βασικό περιβάλλον του KDE.

Χρήσιμα πακέτα: kcpuload, gtop.

0
Your rating: None