Sigo con esta serie de tutoriales, actualizados, acerca de los mejores software pra monitorear el rendimiento de nuestra CPU en Linux.
Sobretodo en estos ultimos tiempos en los que muchas distribuciones del pinguino, han dejado -lamentablemente de lado nuestros queridos y anorados 32 bit para pasar directamente a los 64 bit, complicando la vida de muchos (viejos) equipos. Como el mio, sin ir mas lejos.
Administrar el uso del CPU en Linux puede ser un dolor de cabeza, en especial en un servidor Linux, sistema de CPU múltiples o sistema compartido. Sin embargo, existen varias herramientas que ayudan a lidiar con este problema.
La más conocidas sean tal vez Nagios y SAR, el programa de línea de comandos que muestra información básica sobre los procesos que se ejecutan en el equipo, pero hay tambièn tros programas que proporcionan información en distintos CPU y agregan datos de uso del CPU durante períodos prolongados.
Sin ánimo de ser exhaustivos presentamos una lista de las mejores herramientas para monitorear el rendimiento del CPU en Linux.
I continue with this series of tutorials, updated, about the best software to monitor the performance of our CPU in Linux. Especially in these last times in which many distributions of the penguin, have left - unfortunately aside our beloved and nored 32 bit to move directly to the 64 bit, complicating the life of many (old) computers. Like mine, without going any further.
Managing CPU usage in Linux can be a headache, especially on a Linux server, multi-CPU system or shared system. However, there are several tools that help to deal with this problem.
The best known are perhaps Nagios and SAR, the command line program that displays basic information about the processes running on the computer, but there are also other programs that provide information on different CPUs and aggregate CPU usage data over extended periods.
Without being exhaustive we present a list of the best tools for monitoring CPU performance on Linux.
6. Vmstat.
Vmstat es un comando que nos permite obtener un detalle general de los procesos, E/S, uso de memoria/swap, estado del sistema y actividad del CPU. Es esencial para entender que esta pasando en tu sistema, detectar cuellos de botella, etc..
Los siguientes son algunos de los ejemplos de comandos vmstat.
vmstat por defecto se mostrará el uso de la memoria (incluyendo swap) como se muestra a continuación.
$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 305416 260688 29160 2356920 2 2 4 1 0 0 6 1 92 2 0
Para ejecutar vmstat cada 2 segundos durante 10 veces, haga lo siguiente. Después de ejecutar 10 veces, se detendrá automáticamente.
$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 537144 182736 6789320 0 0 0 0 1 1 0 0 100 0 0
0 0 0 537004 182736 6789320 0 0 0 0 50 32 0 0 100 0 0
..
iostat y vmstat forman parte de la utilidad sar. Usted debe instalar el paquete sysstat para obtener iostat y de trabajo vmstat.
Si se ejecuta el comando “vmstat” sin opciones, nos muestra una unica línea, que contiene promedios calculados desde la última vez que se arrancó el sistema.
Si ejecutamos “vmstat 1″ muestra una nueva línea de utilización de datos cada segundo, mientras que el comando “vmstat 1 10″, muestra una nueva línea por segundo, pero sólo por los próximos 10 segundos.
Vmstat is a command that allows you to get an overview of processes, I/O, memory/swap usage, system status and CPU activity. It is essential to understand what is going on in your system, detect bottlenecks, etc...
The following are some examples of vmstat commands.
vmstat by default will display memory usage (including swap) as shown below.
$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 305416 260688 29160 2356920 2 2 4 1 0 0 6 1 92 2 0
To run vmstat every 2 seconds for 10 times, do the following. After running 10 times, it will stop automatically.
$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 537144 182736 6789320 0 0 0 0 1 1 0 0 100 0 0
0 0 0 537004 182736 6789320 0 0 0 0 50 32 0 0 100 0 0
..
iostat and vmstat are part of the sar utility. You must install the sysstat package to get iostat and vmstat working.
If you run the command "vmstat" without options, it shows a single line, which contains averages calculated since the last time the system was booted.
If we run "vmstat 1″ it shows a new line of data usage every second, while the command "vmstat 1 10″, shows a new line per second, but only for the next 10 seconds.
7. Comando Ps.
El comando ps muestra por pantalla un listado de los procesos que se están ejecutando en el sistema. El comando PS es mucho más potente de lo que pensamos, y este poder viene de su versatilidad absoluta. El comando PS significa “process status” (Estado de los procesos), y nos muestra todo lo relacionado con los procesos de nuestra máquina; en cierto modo hay que pensar en el como el administrador de tareas de los más frikis (geeks).
Proceso es una instancia de ejecución de un programa. Linux es un sistema operativo multitarea, que significa que más de un proceso puede estar activo a la vez. Utilice el comando ps para averiguar qué procesos se están ejecutando en el sistema.
ps comando también le dan mucha información adicional sobre el proceso en ejecución que le ayudará a identificar los cuellos de botella en el sistema.
Los siguientes son algunos ejemplos de comandos ps.
Use la opción-u para mostrar el proceso que pertenece a un usuario específico. Cuando tienes nombre de usuario múltiple, sepárelos mediante una coma. El siguiente ejemplo muestra todo el proceso que son propiedad del usuario wwwrun o sufijo.
$ ps -f -u wwwrun,postfix
UID PID PPID C STIME TTY TIME CMD
postfix 7457 7435 0 Mar09 ? 00:00:00 qmgr -l -t fifo -u
wwwrun 7495 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 7496 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 7497 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 7498 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 7499 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 10078 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 10082 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
postfix 15677 7435 0 22:23 ? 00:00:00 pickup -l -t fifo –u
El siguiente ejemplo muestra el ID de proceso y comandos en una jerarquía. --forest es un argumento para el comando ps que muestra el arte ASCII del árbol de procesos. A partir de este árbol, podemos identificar cuál es el proceso primario y los procesos hijo se bifurca de manera recursiva.
$ ps -e -o pid,args --forest
468 _ sshd: root@pts/7
514 | _ -bash
17484 _ sshd: root@pts/11
17513 | _ -bash
24004 | _ vi ./790310__11117/journal
15513 _ sshd: root@pts/1
15522 | _ -bash
4280 _ sshd: root@pts/5
4302 | _ –bash
The ps command displays a list of the processes running on the system. The PS command is much more powerful than we think, and this power comes from its absolute versatility. The PS command stands for "process status", and it shows us everything related to the processes on our machine; in a way we should think of it as the task manager for geeks.
Process is an instance of program execution. Linux is a multitasking operating system, which means that more than one process can be active at a time. Use the ps command to find out which processes are running on the system.
ps command will also give you a lot of additional information about the running process that will help you identify bottlenecks in the system.
The following are some examples of ps commands.
Use the u-option to show the process that belongs to a specific user. When you have multiple user names, separate them with a comma. The following example shows all the process that are owned by the user wwwrun or suffix.
$ ps -f -u wwwrun,postfix
UID PID PPID C STIME TTY TIME CMD
postfix 7457 7435 0 Mar09 ? 00:00:00 qmgr -l -t fifo -u
wwwrun 7495 7491 0 Mar09 ? 00:00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 7496 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 7497 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 7498 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 7499 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 10078 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 10082 7491 0 Mar09 ? 00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
postfix 15677 7435 0 22:23 ? 00:00:00:00 pickup -l -t fifo -u
The following example shows the process ID and commands in a hierarchy. --forest is an argument to the ps command that displays the ASCII art of the process tree. From this tree, we can identify which is the primary process and the child processes it forks recursively.
$ ps -e -o pid,args --forest
468 _ sshd: root@pts/7
514 _ _ -bash
17484 _ sshd: root@pts/11
17513 | _ _ -bash
24004 | _ _ vi ./790310__11117/journal
15513 _ sshd: root@pts/1
15522 | _ -bash
4280 _ sshd: root@pts/5
4302 | _ -bash
8. Free
El comando Free en Linux muestra la cantidad de memoria libre y usada que tiene el sistema. Por una parte muestra la memoria física y por otra la swap, también muestra la memoria caché y de buffer consumida por el Kernel.
En el siguiente ejemplo, la memoria física total en este sistema es de 1 GB. Los valores que se muestran a continuación están en KB.
free
total used free shared buffers cached
Mem: 1034624 1006696 27928 0 174136 615892
-/+ buffers/cache: 216668 817956
Swap: 2031608 0 2031608
El siguiente ejemplo muestra la memoria total del sistema incluyendo RAM y Swap.
En el siguiente comando:
Las opción m muestra los valores en MB
La opción t muestra el "Total", que es la suma de los valores de la memoria física y swap.
La opción o para ocultar la línea buffers/cache del ejemplo anterior.
free -mto
total used free shared buffers cached
Mem: 1010 983 27 0 170 601
Swap: 1983 0 1983
Total: 2994 983 2011
The Free command in Linux shows the amount of free and used memory that the system has. On the one hand it shows the physical memory and on the other the swap memory, it also shows the cache and buffer memory consumed by the Kernel.
In the following example, the total physical memory in this system is 1 GB. The values shown below are in KB.
free
total used free shared buffers cached
Mem: 1034624 1006696 27928 0 174136 615892
-/+ buffers/cache: 216668 817956
Swap: 2031608 0 2031608
The following example shows the total system memory including RAM and Swap.
In the following command:
The m option shows the values in MB.
The t option shows the "Total", which is the sum of the physical and swap memory values.
The o option to hide the buffers/cache line from the previous example.
free -mto
total used free shared buffers cached
Mem: 1010 983 27 0 170 601
Swap: 1983 0 1983
Total: 2994 983 2011
9. TOP
Top es una herramienta que nos proporciona información de los procesos que se estan corriendo en ese momento en tiempo real con valors de uso de CPU, memoria, swap y la posibilidad de manupular procesos. Presenta una interfaz simple que cuenta con varias partes.
Usted puede matar a un proceso desde la parte superior. Una vez que haya localizado un proceso que debe ser asesinado, pulsar la tecla "k", que le pedirá el identificador de proceso (PID), y la señal para enviar. Si usted tiene el privilegio de matar a ese PID particular, se matan con éxito.
PID to kill: 1309
Kill PID 1309 with signal :
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
5136 root 16 0 38040 14m 9836 S 0 0.2 0:00.39 nautilus
Usar top-u para mostrar un procesos específicos de usuarios sólo en la salida del comando top.
$ top -u geek
Mientras comando unix top se está ejecutando, pulse u que le pedirá el nombre de usuario como se muestra a continuación.
Which user (blank for all): geek
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
Top is a tool that provides information of the processes that are running at that moment in real time with CPU, memory, swap usage values and the possibility to manage processes. It has a simple interface with several parts.
You can kill a process from the top. Once you have located a process to be killed, press the "k" key, which will prompt you for the process identifier (PID), and the signal to send. If you have the privilege to kill that particular PID, it will be successfully killed.
PID to kill: 1309
Kill PID 1309 with signal :
PID USER PR NI VIRT RES RES SHR S %CPU %MEM TIME+ COMMAND
1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
5136 root 16 0 38040 14m 9836 S 0 0 0.2 0:00.39 nautilus
Use top-u to display user-specific processes only in the output of the top command.
$ top -u geek
While unix top command is running, press u which will prompt for the user name as shown below.
Which user (blank for all): geek
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
10. Pmap
En un servidor Linux, puedes listar fácilmente los detalles de un proceso activo y visualizar su consumo real de memoria. A veces vemos que el ordenador se relentiza y tenemos que ser capaces de saber cual es el proceso que está saturando la RAM. El comando que te permitirá controlar este aspecto se llama “pmap”. Una vez hecho login como root, hemos de escribir en la linea de comandos lo siguiente:
El siguiente ejemplo muestra el mapa de memoria de la shell bash en curso. En este ejemplo, 5732 es el PID del shell bash.
$ pmap 5732
5732: -bash
00393000 104K r-x-- /lib/ld-2.5.so
003b1000 1272K r-x-- /lib/libc-2.5.so
00520000 8K r-x-- /lib/libdl-2.5.so
0053f000 12K r-x-- /lib/libtermcap.so.2.0.8
0084d000 76K r-x-- /lib/libnsl-2.5.so
00c57000 32K r-x-- /lib/libnss_nis-2.5.so
00c8d000 36K r-x-- /lib/libnss_files-2.5.so
b7d6c000 2048K r---- /usr/lib/locale/locale-archive
bfd10000 84K rw--- [ stack ]
total 4796K
pmap -x gives some additional information about the memory maps.
$ pmap -x 5732
5732: -bash
Address Kbytes RSS Anon Locked Mode Mapping
00393000 104 - - - r-x-- ld-2.5.so
003b1000 1272 - - - r-x-- libc-2.5.so
00520000 8 - - - r-x-- libdl-2.5.so
0053f000 12 - - - r-x-- libtermcap.so.2.0.8
0084d000 76 - - - r-x-- libnsl-2.5.so
00c57000 32 - - - r-x-- libnss_nis-2.5.so
00c8d000 36 - - - r-x-- libnss_files-2.5.so
b7d6c000 2048 - - - r---- locale-archive
bfd10000 84 - - - rw--- [ stack ]
total kB 4796 - - -
On a Linux server, you can easily list the details of an active process and visualize its actual memory consumption. Sometimes we see that the computer slows down and we need to be able to know which process is saturating the RAM. The command that will allow you to control this aspect is called "pmap". Once logged in as root, we have to type in the command line the following:
The following example shows the memory map of the current bash shell. In this example, 5732 is the PID of the bash shell.
$ pmap 5732
5732: -bash
00393000 104K r-x-- /lib/ld-2.5.so
003b1000 1272K r-x-- /lib/libc-2.5.so
00520000 8K r-x-- /lib/libdl-2.5.so
0053f000 12K r-x-- /lib/libtermcap.so.2.0.8
0084d000 76K r-x-- /lib/libnsl-2.5.so
00c57000 32K r-x-- /lib/libnss_nis-2.5.so
00c8d000 36K r-x-- /lib/libnss_files-2.5.so
b7d6c000 2048K r---- /usr/lib/locale/locale-archive
bfd10000 84K rw--- [ stack ]
total 4796K
pmap -x gives some additional information about the memory maps.
$ pmap -x 5732
5732: -bash
Address Kbytes RSS Anon Locked Mode Mapping
00393000 104 - - - - r-x-- ld-2.5.so
003b1000 1272 - - - - r-x-- libc-2.5.so
00520000 8 - - - r-x-- libdl-2.5.so
0053f000 12 - - - r-x-- libtermcap.so.2.0.8
0084d000 76 - - - - r-x-- libnsl-2.5.so
00c57000 32 - - - r-x-- libnss_nis-2.5.so
00c8d000 36 - - - r-x-- libnss_files-2.5.so
b7d6c000 2048 - - - - r---- locale-archive
bfd10000 84 - - - - rw--- [ stack ]
total kB 4796 - - - - -
Fuente imágenes / Source images.
Vmstat
The PS Command.
Free Command.
Command TOP.
Pmap Command.
- Este tema ha sido tratado en los blogs que enuncio al final.
Blogs, Sitios Web y Redes Sociales / Blogs, Webs & Social Networks | Plataformas de Contenidos/ Contents Platforms |
---|---|
Mi Blog / My Blog | Los Apuntes de Tux |
Mi Blog / My Blog | El Mundo de Ubuntu |
Mi Blog / My Blog | Nel Regno di Linux |
Mi Blog / My Blog | Linuxlandit & The Conqueror Worm |
Mi Blog / My Blog | Pianeta Ubuntu |
Mi Blog / My Blog | Re Ubuntu |
Mi Blog / My Blog | Nel Regno di Ubuntu |
Red Social Twitter / Twitter Social Network | @hugorep |
Blurt Official | Blurt.one | BeBlurt | Blurt Buzz |
---|---|---|---|
Hi @hugo1954, great news! Your content was selected by curators @nalexadre, @oneray to receive a special curation from BeBlurt 🎉 Don't hesitate to upvote this comment as the curators will receive 80% of the rewards for their involvement.
You can support us by voting for our witness, our decentralized funding proposal, or through delegation. You're also welcome to join our Discord server 👉 https://discord.beblurt.com
Thanks for curating my content in particular to @nalexadre and @oneray. I support you as a witness @nalexadre