Δραστηριότητα συστήματος

From KDE UserBase Wiki
Revision as of 19:00, 24 January 2013 by Dimkard (talk | contribs) (Created page with "Τα δεδομένα που αιτούνται από το δίσκο δεν είναι τα ίδια με τα πραγματικά δεδομένα που τελικά δι...")

Εισαγωγή

Η Δραστηριότητα συστήματος' είναι παρόμοια με τον Task Manager των Microsoft Windows, το Activity Monitor του Mac OS X της Apple και το System Monitor του Gnome. Εμφανίζεται πατώντας τη συντόμευση Ctrl + Esc ή κάνοντας κλικ στο εικονίδιο Δραστηριότητα συστήματος, στο παράθυρο του KRunner, ο οποίος εμφανίζεται με τη συντόμευση (Alt + F2).

Εμφανίζει μια λίστα με τις τρέχουσες διεργασίες, μαζί με τη χρήση του επεξεργαστή, της μνήμης καθώς και άλλων πληροφοριών.



Γενικές συμβουλές

Σχεδόν κάθε τμήμα του γραφικού περιβάλλοντος εμφανίζει και μια υπόδειξη, όταν περνάτε με το ποντίκι για αρκετή ώρα, παρέχοντας λεπτομερείς πληροφορίες και με τη λειτουργικότητα "Τι είναι αυτό", η οποία ενεργοποιείται με το κουμπί , για να εξηγήσει τι σημαίνει η συγκεκριμένη πληροφορία.

Για παράδειγμα, περνώντας με το ποντίκι πάνω από το βαθμό χρήσης του επεξεργαστή για μια διεργασία, μπορούμε να δούμε διάφορες πληροφορίες μεταξύ των οποίων και πόση ώρα συνολικά τρέχει η διεργασία.



Γιατί το σύστημά μου αυτή τη στιγμή πηγαίνει αργά;

Ένα σύστημα μπορεί να πηγαίνει αργά γιατί μια διεργασία (πρόγραμμα) απαιτεί όλη την υπολογιστική ισχύ (χρήση επεξεργαστή) ή χρησιμοποιεί όλη τη μνήμη του υπολογιστή.

Προκαθορισμένα, οι διεργασίες του ενεργού χρήστη που χρησιμοποιούν μεγάλο μέρος του επεξεργαστή ή της μνήμης βρίσκονται κοντά στην κορυφή. Αυτό σημαίνει ότι τα προγράμματα που δε συμπεριφέρονται σωστά θα πρέπει να είναι κοντά στην κορυφή και να είναι εύκολα αναγνωρίσιμα. Για παράδειγμα:



Σε αυτό το παράδειγμα,ο Firefox έχει σταματήσει να ανταποκρίνεται και καταναλώνει το 99% του επεξεργαστή. Για να τερματίσετε μια διεργασία που δε συμπεριφέρεται σωστά, κάντε κλικ στη διεργασία για να την επιλέξετε και πατήστε το κουμπί Τερματισμός διεργασίας.... Έτσι θα αποσταλεί ένα ευγενικό αίτημα στη διεργασία για να τερματίσει.

Δε μπορώ να τη σκοτώσω - απλά δε θα πεθάνει!

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

Κάποιες φορές ακόμα κι αυτό μπορεί να μην τερματίσει τη διεργασία, ή η επιλογή μπορεί να μην είναι διαθέσιμη. Κάτι τέτοιο μπορεί να συμβεί π.χ. με το vuze σε συγκεκριμένους πυρήνες. Αν η διεργασία ή κάποια από τα νήματά της πιαστεί σε κάποιο σφάλμα του πυρήνα μπορεί να κολλήσει προσπαθώντας να εκτελέσει μια λειτουργία πυρήνα και να γίνει εντελώς μη τερματίσιμη. Σε πολλές περιπτώσεις δεν υπάρχει άλλη λύση από την επανεκκίνηση του μηχανήματος.

Διεργασίες zombie

Οι διεργασίες οι οποίες είναι σε κατάσταση Zombie είναι ήδη νεκρές, έτσι δε μπορούν να σκοτωθούν. Το σύστημα τις αφήνει να περιφέρονται μέχρι η γονική διεργασία να το προσέξει, που συνιστά συνήθως ένα μικρό χρονικό διάστημα. Το να δείτε μια διεργασία zombie συνήθως σημαίνει ότι η γονική διεργασία έχει σταματήσει να ανταποκρίνεται.

Στοχεύοντας στο σκότωμα ενός παραθύρου

Αν θέλετε να σκοτώσετε ένα συγκεκριμένο παράθυρο που έχει κολλήσει, απλά πατήστε Ctrl + Alt + Esc οποιαδήποτε στιγμή. Ο δείκτης του ποντικιού θα μετατραπεί σε μια εικόνα νεκροκεφαλής. Τώρα κάντε κλικ πάνω στο παράθυρο που θέλετε να σκοτώσετε. Σημειώστε ότι έτσι θα τερματίσετε άμεσα την εφαρμογή και πιθανώς να χάσετε τυχόν μη αποθηκευμένα δεδομένα.

Ποια η διαφορά μεταξύ Μνήμης και Κοινόχρηστης μνήμης;

Η στήλη Μνήμη δείχνει προσεγγιστικά το ποσό της μνήμης RAM που χρησιμοποιεί ιδιωτικά η διεργασία για τον εαυτό της. Η στήλη Κοινόχρηστη μνήμη είναι μια προσέγγιση της μνήμης που χρησιμοποιείται ή θα μπορούσε να χρησιμοποιείται από κοινού με άλλα προγράμματα. Για παράδειγμα, οι βιβλιοθήκες το KDE χρησιμοποιούνται από όλα τα προγράμματα του KDE και έτσι φορτώνονται στη μνήμη μόνο μια φορά.

From KDE SC 4.4, you can right-click on a process and view the Detailed Memory Information for the process to get more accurate readings.

Τεχνικές πληροφορίες

Η στήλη "Μνήμη" δείχνει την τιμή VmRSS - Κοινόχρηστη κι έτσι είναι γενικά χαμηλότερη από τις τιμές που εμφανίζουν εντολές σαν την top. Η στήλη δε συμπεριλαμβάνει σελίδες μνήμης υποστηριγμένες από είσοδο/έξοδο κι επίσης τη μνήμη που χρησιμοποιείται από τον διακομιστή Χ για να αποθηκεύσει τα pixmap που χρησιμοποιεί η εφαρμογή. Η τιμή αυτή συχνά καλείται και Unique RSS μέγεθος ή URSS. Αυτή είναι η κατά προσέγγιση ιδιωτική χρήση μνήμης που εμφανίζεται στις Λεπτομερείς πληροφορίες μνήμης.

Η Κοινόχρηστη μνήμη είναι η ίδια με αυτή της στήλης SHR της εντολής top και μπορεί να είναι κάπως ανακριβής. Είναι κατά προσέγγιση και η τιμή που εμφανίζεται ως χρήση Κοινόχρηστης μνήμης στις Λεπτομερείς πληροφορίες μνήμης.

Ειδικότερα, η λίστα των διεργασιών αποτελεί ανάλυση του /proc/pid/stat ενώ οι Λεπτομερείς πληροφορίες μνήμης του /proc/pid/smaps.

Πώς μπορώ να δω πιο λεπτομερείς πληροφορίες για τη μνήμη που σχετίζεται με μια διεργασία;

Από το KDE SC 4.4, μπορείτε να επιλέξετε μια διεργασία, να κάνετε δεξί κλικ σε αυτή και να επιλέξετε Λεπτομερείς πληροφορίες μνήμης, με αποτέλεσμα κάτι σαν το παρακάτω:



Γιατί οι τιμές στις Λεπτομερείς πληροφορίες μνήμης δεν ταιριάζουν με αυτές της λίστας των διεργασιών;

Η λίστα των διεργασιών της Δραστηριότητας συστήματος χρησιμοποιεί ένα προσεγγιστικό υπολογισμό για τη συλλογή των τιμών. Οι Λεπτομερείς πληροφορίες μνήμης δίνουν πιο ακριβείς τιμές.

Γιατί η διεργασία "Xorg" καταναλώνει τόση πολλή μνήμη;

Η συγκεκριμένη αποτελεί τη διεργασία που εμφανίζει όλες τις υπόλοιπες. Η χρήση της μνήμης για τη συγκεκριμένη διεργασία περιλαμβάνει όλη τη μνήμη που χρησιμοποιείται στην κάρτα γραφικών για την αποθήκευση των pixmap (εικόνων) των εφαρμογών.

Γενικά δε χρειάζεται να ανησυχείτε για τη χρήση της μνήμης που κάνει ο Xorg.

Πώς βλέπω το PID μιας διεργασίας;

Αν θέλετε να δείτε το PID μιας και μόνο διεργασίας, περάστε με το ποντίκι πάνω από τη διεργασία. Το PID θα εμφανιστεί στην υπόδειξη.

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


Επιλέξετε Εμφάνιση στήλης 'PID'.


Μπορεί η Δραστηριότητα συστήματος να εμφανίσει τη χρήση E/E του Σκληρού δίσκου, όπως η εντολή iotop;

Κάντε δεξί κλικ στις επικεφαλίδες των στηλών και επιλέξτε Εμφάνιση στήλης Ανάγνωση Ει/Εξ και το ίδιο επιλέγοντας Εμφάνιση στήλης Εγγραφή Ει/Εξ. Έτσι θα προβληθεί η ποσότητα των δεδομένων που στέλνονται από και προς το σκληρό δίσκο.

Κάνοντας δεξί κλικ στην επικεφαλίδα των στηλών μπορείτε να επιλέξετε αν θέλετε να εμφανίζεται η πραγματική ποσότητα των δεδομένων που γράφονται ή διαβάζονται από τον σκληρό δίσκο (προκαθορισμένη επιλογή) ή να επιλέξετε να βλέπετε πόσα δεδομένα η εφαρμογή σας στέλνει ή ζητά από ένα αρχείο.

Τα δεδομένα που αιτούνται από το δίσκο δεν είναι τα ίδια με τα πραγματικά δεδομένα που τελικά διαβάζονται - για παράδειγμα αν δύο εφαρμογές διαβάζουν από το ίδιο αρχείο, το λειτουργικό σύστημα δε χρειάζεται να διαβάσει δύο φορές από τον σκληρό δίσκο - μπορεί απλά να διαβάσει μια φορά και να θυμάται το περιεχόμενο για λίγη ώρα. Αντίστοιχα, αν μια διεργασία γράφει σε ένα αρχείο, αλλά μια άλλη γράφει πάνω στο ίδιο αρχείο, δεν υπάρχει κανένας λόγος να γραφεί η πρώτη έκδοση του αρχείου στον δίσκο.


Why are some processes grayed out?

For example the process xclock:



This means that the process has already died. It is shown as a disabled process just for convenience to make it easier to see processes that are quit. The values for the CPU usage, Memory usage, etc are just the values from when the process was last seen alive. A process that has ended does not take up any resources (it uses no CPU, memory etc).

What are all of these processes owned by root and taking up no memory?

These are kernel threads. They exist only inside the kernel, and exist to allow the kernel to perform multiple tasks in parallel.

They are shown because occasionally they can be a cause of heavy CPU usage. For example, under a heavy load, and with bad drivers, a network card can produce a huge number of interrupts, resulting in a high CPU usage in the ksoftirqd kernel thread.

Likewise, a high CPU usage in kjournald can indicate that DMA transfer is not enabled on the hard disk.

Why do I have so many processes?

A normal average-user system has around 150 to 200 processes with strange sounding names. It would be nice to setup a wiki page giving a short description of each of these processes, but so far nobody has done this.

Why is OpenOffice.org not showing up as a graphical program?

Before version 3.3, OpenOffice.org did not correctly implement the window standards. Specifically, their windows did not set _NET_WM_PID to link the windows to the process. This is now fixed in OpenOffice.org 3.3.

Why is gvim showing up strangely as a graphical program?

This is a fault with the GVim program. GVim does not correctly implement the window standards. Specifically, when it starts up it forks a new process to avoid hanging the shell that it ran from. But it sets the _NET_WIN_PID property to the previous PID. The authors have been notified but have not fixed this yet.