# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

TOP: mostrar información de múltiples CPU

Si tenéis una máquina con más de una CPU, y el comando TOP en lugar de mostrar la información detallada de cada una de ellas la muestra conjunta, debéis hacer lo siguiente:

Ejemplo de comando TOP con las CPU(s) agrupadas:

top - 11:02:08 up 26 min,  2 users,  load average: 0.01, 0.02, 0.03
Tasks: 102 total,   1 running, 141 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16433556k total,   414260k used, 16019296k free,    25672k buffers
Swap:  2096472k total,        0k used,  2096472k free,   177120k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+a COMMAND
10460 root      15   0 12740 1136  828 R  0.3  0.0   0:00.16 top
    1 root      15   0 10348  704  592 S  0.0  0.0   0:01.26 init [3]

Una vez dentro de la ejecución de top, presionad la tecla 1 para que se desplieguen todas las CPU. Si os agrada el resultado, presionad W para guardar el cambio y que por defecto aparezcan así:

top - 11:04:04 up 28 min,  2 users,  load average: 0.02, 0.02, 0.03
Tasks: 102 total,   1 running, 141 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.2%us,  0.1%sy,  0.1%ni, 98.9%id,  0.5%wa,  0.0%hi,  0.2%si,  0.0%st
Cpu1  :  0.1%us,  0.1%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  0.1%us,  0.1%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.1%us,  0.1%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  :  0.2%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  :  0.1%us,  0.1%sy,  0.0%ni, 99.6%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu6  :  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16433556k total,   413868k used, 16019688k free,    25896k buffers
Swap:  2096472k total,        0k used,  2096472k free,   177288k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      15   0 10348  704  592 S  0.0  0.0   0:01.26 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.01
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00

Linux: Listar procesos por % cpu o uso de memoria

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

Linux: Mostrar información de CPU

Mostrar información de la CPU en Linux tal como tipo de procesador, modelo, fabricante, stepping, caché, Mhz, etc es tan sencillo como ejecutar el comando ‘cat /proc/cpuinfo’, ejemplo:

$ cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 15
model name    : Intel(R) Pentium(R) Dual  CPU  T2310  @ 1.46GHz
stepping    : 13
cpu MHz        : 800.000
cache size    : 1024 KB
physical id    : 0
siblings    : 2
core id        : 0
cpu cores    : 2
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 10
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm
bogomips    : 2929.64
clflush size    : 64

processor    : 1
vendor_id    : GenuineIntel
cpu family    : 6
model        : 15
model name    : Intel(R) Pentium(R) Dual  CPU  T2310  @ 1.46GHz
stepping    : 13
cpu MHz        : 800.000
cache size    : 1024 KB
physical id    : 0
siblings    : 2
core id        : 1
cpu cores    : 2
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 10
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm
bogomips    : 2925.92
clflush size    : 64