Con estas dos secuencias de comandos podréis ver de un modo rápido y sencillo los procesos ordenados por uso (%) de CPU y memoria. Por supuesto no es necesario (ni práctico) escribir el comando completo en la shell cada vez que lo queráis ejecutar, os recomiendo crear un alias específico para cada uno de ellos.
Listar procesos por % cpu, veréis que eliminamos aquellos que usan 0.0 de CPU con sed (sed ‘/^ 0.0 /d):
ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'
Ejemplo:
$ ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d' %CPU CPU NI S TIME COMMAND 0.2 - 0 S 00:00:24 metacity 0.2 - 0 S 00:00:00 /usr/bin/python /usr/bin/terminator 0.2 - 0 S 00:00:28 gnome-screensaver 0.2 - 0 S 00:00:31 gnome-panel 4.6 - 0 S 00:08:23 /usr/bin/pulseaudio --start 7.4 - 0 S 00:13:24 /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7 7.5 - 0 S 00:04:31 rhythmbox 14.4 - 0 S 00:08:50 /usr/lib/firefox-3.5.4/firefox-3.5
Listar procesos por uso de memoria (en KB):
ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS
Ejemplo (reducido):
$ ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS 23964 gnome-panel 26168 nautilus 26256 /usr/bin/python /usr/bin/terminator 58340 /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7 58728 rhythmbox 128736 /usr/lib/firefox-3.5.4/firefox-3.5
Encontrado en pixelbeat
Hoy no comento por curro, tranquilo :-P
Has pensado en crear una wikipedia o algo por el estilo para que sea de facil acceso y organizacion con todo lo que llegas a saber?
Suerte!
Interesante idea Dracks!
Lo tendré en cuenta, ahora solo falta encontrar tiempo para hacerlo.
Saludos!
Es que yo queria hacer una wikipedia, pero al final no la hice, si quieres, te puedo intentar ayudar… Una dokuwiki no cuesta mucho de instalar, y es facil de manejar.
Suerte!
P.D.: no todo ivan a ser preguntas del curro.
Pues me ha venido de perlas este post, tengo un montón de cpu consumida y no sabía desglosarlo. Gracias!!
Excelente aporte
Tengo un par de servidores virtuales y se caen demasiado por consumo, pero no logro saber que proceso es el que los esta tumbando.
Excelente aporte, ya con esto le muestro algo ordenado a mis clientes :) mil gracias
No seria mas practico utilizar el comando top o instalar htop
saludos
Desde luego jeje ;)
Pero bueno, sirve para aprender cosas nuevas.
Saludos!
Para mirar el consumo de memoria utilizado por cada proceso pues lo mas comodo es hacer:
htop
F6 y sort por %mem.
Un saludo
Saludos amigo,
Buen post.
Yo estoy buscando mas o menos parecido pues necesito todas las mañana chequear el server y tomar datos, ahora bien, me gustaría consultarte lo siguiente:
1.- A traves de este comenado:
$ ps -e -o pcpu,cpu,nice,state,cputime,args –sort pcpu | sed ‘/^ 0.0 /d’
Como hago para filtrar que solamente me traiga los primeros 10 trabajos o mejor aun, como hago para que me agrupe el resultado por comando, por ejemplo que me diga cuanta memoria, cpu para el comando HTTPD?
2.- Exactamente que hace el segundo comando?
Gracias mil por tu respuesta a estas dudas.
alguno de ustedes sabe secuencias de comandos que indiquen los 3 primeros procesos que están consumiendo más CPU por un lado y por otro los 3 primeros que están consumiendo más memoria ordenados por el nombre de proceso.
chicos aquí un comando que te lista los procesos agrupados por comando y que te dice cuantos procesos son. Y el % de consumo de CPU:
ps -eo pcpu,pid,user,command –sort -pcpu | perl -lne ‘if(m/^\s*([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+(.*)$/){ $h{$4}{sum}+=$1;$h{$4}{count}++;}’ -e ‘END{foreach $i(sort { $h{$b}{sum}$h{$a}{sum}} keys %h){ $tt+=$h{$i}{sum}; printf «%13.2f\%: %d: %s\n»,$h{$i}{sum},$h{$i}{count},$i if($h{$i}{sum}>1);} printf «Total: %13.2f\%\n», $tt;}
espero les sirva.
admin@palermo.edu
pues da error de un compañero
-bash: syntax error near unexpected token `(‘
para saber el uso de memoria igual que el se explica el uso de cpu sin lo que consume 0 se puede escribir así:
ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS |sed ‘s/\ //g;/^0/d’