Μέθοδος καταγραφής διεργασιών με CPU load 100% + freeze...  Το θέμα επιλύθηκε

...εγκαταστάσεις, αναβαθμίσεις, διαχείριση partitions, boot-loader, κλπ

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Στην ενότητα αυτή γράφουμε θέματα/ προβλήματα μόνο για το UBUNTU ή τα παράγωγά του.

Μέθοδος καταγραφής διεργασιών με CPU load 100% + freeze...

Δημοσίευσηαπό padavrexi » 01 Δεκ 2009, 14:04

Καλημέρα!

Σε laptop (HP 510) με επεξεργαστή PentiumM@2.13GHz, 1GB RAM και Ubuntu Karmic έχω το εξής πρόβλημα: μια στο τόσο και χωρίς να έχω καταφέρει να το συσχετίσω με κάποια συγκεκριμένη ενέργειά μου, το CPU load βαράει μπιέλες και φτάνει το 100% με συνέπεια να freezάρει για λίγο (ως πολύ) το PC. Το βλέπω στο orb του docky αλλά μόλις πάω να ανοίξω το system monitor κολλάει. Όταν μετά από κάποια δευτερόλεπτα επανέρχεται το σύστημα (και ανοίγει το system monitor), το cpu load έχει πέσει ήδη και δεν βλέπω τι προκάλεσε το peak. Την στιγμή που συμβαίνει αυτό δεν μπορώ να ανοίξω ούτε κονσόλα...

...και η ερώτηση είναι η εξής - πώς μπορώ να δω/καταγράψω τι γίνεται εκείνη την στιγμή και ποιό process φταίει για το freeze? Ενδεικτικά, συμβαίνει (σε μη-περιοδικά διαστήματα) όταν ακούω μουσική (vlc/audacious), όταν σερφάρω (chromium/firefox) αλλά και όταν χρησιμοποιώ διάφορα άλλα προγράμματα (evince/OO/wine apps etc).

καμιά ιδέα;
ευχαριστώ!
Τελευταία επεξεργασία από pros και 03 Δεκ 2009, 16:11, έχει επεξεργασθεί 3 φορά/ες συνολικά
Αιτία: Βελτίωση τίτλου
padavrexi
babeTUX
babeTUX
 
Δημοσιεύσεις: 5
Εγγραφή: 09 Ιουν 2009, 19:14
Εκτύπωση

Re: CPU load 100% + freeze...

Δημοσίευσηαπό sokoban4ever » 01 Δεκ 2009, 14:36

κάνε ctrl + alt + f1 ( ή f2 κλπ )
και κάνε log in
έπειτα
κάνε
Κώδικας: Επιλογή όλων
ps aux > processes.txt


μετά θα έχει ένα αρχείο processes.txt
με τις πληροορίες που θέλεις

Σημείωση αν έχεις κάνει acount για root
κανε log in σαν root
και κάνε
Κώδικας: Επιλογή όλων
ps aux -U όνομα_χρήστη > processes.txt

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

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: CPU load 100% + freeze...

Δημοσίευσηαπό padavrexi » 01 Δεκ 2009, 14:53

thanks για την απάντηση και στην πρώτη ευκαιρία θα το δοκιμάσω...
φοβάμαι όμως ότι μέχρι να με βγάλει στο prompt θα έχει τελειώσει το peak (κρατάει συνήθως 5-10 secs) - κι αυτό ΑΝ ακούσει το [Ctrl+Alt+F1] και δεν κολλήσει το PC.

ήλπιζα να παίζει κάτι σαν monitoring/logging tool για τα process και το πόσο CPU "τρώνε"... ξέρουμε κάτι;
χίλια ευχαριστώ πάντως!

btw προτιμώ το:
ps aux | sort -rk3 > process.txt
padavrexi
babeTUX
babeTUX
 
Δημοσιεύσεις: 5
Εγγραφή: 09 Ιουν 2009, 19:14
Εκτύπωση

Re: CPU load 100% + freeze...  Το θέμα επιλύθηκε

Δημοσίευσηαπό sokoban4ever » 01 Δεκ 2009, 22:41

@padavrexi
Με sort θέλεις ... με sort λοιπόν :P

κάνε το εξής
κάνε log in στο γραφικό
και πριν ανοίξεις οποιαδήποτε πρόγραμμα
μπες στο tty1 (με ctrl + alt +f1 )
κάνε log in και εκεί
και τρέξε την εντολή
Κώδικας: Επιλογή όλων
watch -n2 'ps aux | sort -rk3 >>process.txt'

όπου 2 τα δευτερόλεπτα που θα περνάν μέχρι να την ξανα-εκτελεί και να επι-προσθέτει στο αρχείο (χάρις στο >>)
μετά πήγαινε στο γραφικό περιβάλλον και άνοιξε τα ύποπτα προγράμματα .
περισσότερα στο
Κώδικας: Επιλογή όλων
man watch


μετά όταν ξεκολλήσει το γραφικό πήγαινε πάλι στο tty1 και πάτα ctrl + c να διακόψεις την εντολή .

Προσοχή :


Αυτή η εντολή θα κάνει ένα τεράστιο αρχείο άμα την ξεχάσεις πολύ, για αυτό πρόσεχε μην ξεπεράσεις τα 5 - 10 λεπτά καλύτερα (αν δεν έχεις χώρο)
υπολόγισε ότι κάθε 6 δευτερόλεπτα περίπου θα έχεις περίπου 100 κΒ (όπως το δοκίμασα στο σύστημα μου) όπότε σε 1 λέπτο 5 mb ..
άμα το ξεχάσεις πολύ θα σου γεμίσει δηλαδή τον δίσκο
Αυτά :thumbup: ;)
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: CPU load 100% + freeze...

Δημοσίευσηαπό padavrexi » 02 Δεκ 2009, 11:06

ΑΨΟΓΟΣ!!!
σε ευχαριστώ πολύ! αυτό ακριβώς έψαχνα...!

θενκιού!
padavrexi
babeTUX
babeTUX
 
Δημοσιεύσεις: 5
Εγγραφή: 09 Ιουν 2009, 19:14
Εκτύπωση

Re: CPU load 100% + freeze...

Δημοσίευσηαπό padavrexi » 03 Δεκ 2009, 12:41

και σε περίπτωση που ενδιαφέρεται κάποιος, έφτιαξα ένα scriptάκι για να μην γεμίζει άσκοπα ο δίσκος όσο γίνεται monitoring:

Κώδικας: Επιλογή όλων

#!/bin/bash
#
# cpuMon.sh
# Monitors CPU load and logs it if it exceeds the threshold
#

threshold="90.0"
dFile="/home/user/cpuPeak.txt"


# Get current total-CPU-load (by adding all processes's %CPU)
cpuLoad=`ps aux --no-headers --sort=-%cpu | awk '{cpuload += $3} END {print cpuload}'`


# If the sum is greater than the threshold, log top-10 processes
if [ "$cpuLoad" \> "$threshold" ]; then
echo =====[ CPU load = "$cpuLoad" ]===== >> "$dFile"
date >> "$dFile"
ps aux --no-headers --sort=-%cpu | head -n10 >> "$dFile"
echo >> "$dFile"
fi
exit

το τρέχω στο tty1 [watch ./cpuMon.sh] μόλις bootάρω και το αφήνω... κρατάει logs μόνο όταν το CPU load ανέβει πάνω από το threshold (90%).
ξανά ευχαριστώ πολύ!
padavrexi
babeTUX
babeTUX
 
Δημοσιεύσεις: 5
Εγγραφή: 09 Ιουν 2009, 19:14
Εκτύπωση

Re: Μέθοδος καταγραφής διεργασιών με CPU load 100% + freeze...

Δημοσίευσηαπό sokoban4ever » 07 Φεβ 2010, 09:35

ωραίος δεν το είχα προσέξει :thumbup:
αλλά σήμερα που το δοκίμασα
όταν το threshold το έβαζα στο 80.0 έκανε log όταν το cpuLoad ήταν 9 οπότε γέμιζε τα logs άσκοπα (το 9.0 είναι μικρότερο του 80.0 αλλά δεν τα βλέπει το ο τελεστής > στο bash )
βασικά φταίει ότι το bash δεν υποστηρίζει σύγκριση floating point numbers ( αληθινούς δηλαδή)
έτσι έβαλα την awk να το συγκρίνει
επίσης έβαλα και το $USER στο dFile ώστε να το τρέχει απαράλλαχτο όποιος θέλει
Κώδικας: Επιλογή όλων
#!/bin/bash
#
# cpuMon.sh
# Monitors CPU load and logs it if it exceeds the threshold
# Usage : watch ./cpuMon.sh
# also with parameter -n in watch
# Example: watch -n.6 ./cpuMon.sh
# every 600 miliseconds

threshold="90.0"

dFile="/home/$USER/cpuPeak.txt"


# Get current total-CPU-load (by adding all processes's %CPU)
cpuLoad=`ps aux --no-headers --sort=-%cpu | awk '{cpuload += $3} END {print cpuload}'`

#Change : Added support for Comparison of Floating point numbers ( because 9.1 is smaller than 80.0 ) but bash does not "see" that :-)
#If cpuLoad is greater than the threshold , ReturnStatus will be 1

echo $cpuLoad |awk '{ if ( $1 > '$threshold') {exit 1}};'
ReturnStatus=$?

#if awk returns 1 means that cpuLoad has become greater than our thresold so we can log
# If the sum is greater than the threshold, log top-10 processes
if [ "$ReturnStatus" -eq 1 ]; then
echo =====[ CPU load = "$cpuLoad" ]===== >> "$dFile"
date >> "$dFile"
ps aux --no-headers --sort=-%cpu | head -n10 >> "$dFile"
echo >> "$dFile"
fi

exit

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

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση


Επιστροφή στο Λειτουργικό Σύστημα