Cómo probar el estrés de su CPU en Linux
On enero 25, 2022 by adminHay muchas razones por las que puede querer probar el estrés de la CPU en su sistema Linux. Usted puede querer ver cómo su sistema operativo y el hardware se desempeñan cuando está en la utilización completa de la CPU con el fin de detectar errores de software o fallos de hardware. Alternativamente, puede querer generar mucho calor rápidamente para solucionar un problema relacionado con la temperatura de su máquina; maximizar la utilización de la CPU hará eso. Cualquiera que sea la razón, hay una manera rápida y fácil de lograr ese objetivo.
En este tutorial aprenderás:
- Cómo realizar pruebas de estrés en la CPU utilizando la prueba de estrés yes
- Cómo realizar pruebas de estrés en la CPU utilizando el comando stress
- Cómo realizar pruebas de estrés en la CPU utilizando el s-tui command
Requisitos de software y convenciones utilizadas
Sistema | Independiente de la distribución |
Software | sí, getconf, seq, bash, stress, s-tui |
Otros | No se requieren privilegios de root para la prueba de estrés sí. Es posible que se requiera acceso privilegiado a su sistema Linux como root o mediante el comando sudo para instalar otros paquetes de prueba de esfuerzo. |
Convenciones | # – requiere que los comandos de linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso del comando sudo $ – requiere que los comandos de linux dados se ejecuten como un usuario normal sin privilegios |
Escenario de uso
La prueba de estrés de sí detallada en este artículo puede ser muy útil para la resolución de problemas. Con frecuencia, los problemas intermitentes no se vuelven reproducibles hasta que el sistema está bajo una carga pesada, a veces durante un período prolongado de tiempo. Puedes encontrarte en una situación en la que tu máquina, o una que estés manteniendo para un usuario, esté experimentando cierres inesperados, pánicos del kernel u otros problemas intermitentes. En esta situación, puedes intentar reproducir el problema. En ese caso, podría ejecutar el siguiente comando para probar el procesador, haciendo que el problema sea más probable que ocurra, y por lo tanto observable para usted.
Después de haber tomado medidas para remediar la situación, como desinstalar el software, reinstalar el software, incluido el sistema operativo, o reemplazar los componentes de hardware, podría ejecutar el comando de nuevo para determinar si se ha resuelto o no el problema.
Sí Prueba de estrés
Esta línea creará un proceso yes
que se ejecutará en cada núcleo del procesador de la máquina. yes
imprime la letra y
repetidamente hasta que es matado. En un sistema inactivo, cada proceso sí utilizará el 100% de un núcleo de la CPU. Si el procesador soporta hyper-threading y está activado, entonces creará el doble de procesos, ya que esto es necesario para maximizar la utilización de la CPU.
La ventaja de este enfoque es que sólo requiere utilidades estándar que vienen de fábrica en los sistemas GNU/Linux, por lo que no es necesario instalar programas o bibliotecas adicionales. Además, no requiere privilegios de root para ejecutarse. Para empezar, introduzca el siguiente comando en su terminal.
$ for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
El Instituto Geofísico de la UAF, está buscando un Analista de Sistemas Linux con experiencia para unirse a su equipo de analistas e ingenieros de ciberinfraestructura de investigación. UBICACIÓN: Fairbanks, Alaska, USA
APPLY NOW
Vamos a desglosar lo que hace exactamente este one-liner. getconf _NPROCESSORS_ONLN
obtiene el número de núcleos de la CPU; incluyendo los virtuales para los procesadores con hyper-threading. Ejecutar el comando dentro de $()
coloca su salida como un argumento para el comando seq
. seq $(getconf _NPROCESSORS_ONLN)
imprime una secuencia de números desde 1 hasta la cantidad de núcleos virtuales de CPU presentes en el sistema. Ejecutar eso dentro de $()
permite que esa secuencia de números sea utilizada en nuestro bucle for de bash.
Por último, el propio bucle for, for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
toma la secuencia de números desde el 1 hasta la cantidad de núcleos virtuales y por cada uno de ellos inicia un proceso sí y redirige su salida a /dev/null
.
Cuando se ejecuta este comando es aconsejable utilizar top
, htop
o algún otro programa para monitorizar la utilización de la CPU para comprobar que llega al 100%. Anteriormente publicamos un artículo sobre cómo comprobar y monitorizar la utilización de la cpu en linux.
Cuando quiera detener los procesos de yes
y volver a la utilización normal de la CPU, simplemente introduzca lo siguiente en su terminal.
$ killall yes
Otros métodos de prueba de estrés de la CPU
Stress
Stress es un sencillo generador de carga de trabajo que impone una cantidad configurable de estrés al sistema. Además de ser capaz de estresar la CPU, también es capaz de realizar estrés de memoria, E/S y disco en un sistema.
En Arch Linux y Manjaro se puede instalar con el siguiente comando.
$ pacman -S stress
En Debian, Ubuntu y Mint se puede instalar con el siguiente comando.
$ sudo apt install stress
En distros basadas en RHEL se puede instalar con el siguiente comando después de habilitar el Repositorio de Paquetes Extra para Linux Empresarial (EPEL)
$ sudo yum install stress
Para realizar una prueba de estrés con stress
, simplemente introduzca el siguiente comando donde el número utilizado en --cpu
es la cantidad de hilos a iniciar. Para estresar completamente la CPU, este debe ser el número total de núcleos de la CPU o el doble si la CPU soporta hyper-threading. Puede obtener el número apropiado a utilizar introduciendo getconf _NPROCESSORS_ONLN
. En nuestro ejemplo estamos realizando la prueba de estrés en un i7 de cuatro núcleos que soporta hyper-threading, por lo que utilizamos 8.
$ stress --cpu 8
S-tui
s-tui
es una interfaz de usuario de texto para el comando stress
. Además de ejecutar la prueba de estrés realizada por stress
, s-tui
también supervisa la temperatura, la frecuencia, la potencia y la utilización de la CPU mientras muestra los gráficos correspondientes a cada valor en el terminal. s-tui
puede instalarse en todas las distribuciones utilizando pip. Para ello, introduzca el siguiente comando.
$ pip install s-tui --user
Para ejecutar la prueba de estrés introduzca el comando s-tui
en su terminal, luego pulse la flecha hacia abajo (o la tecla j) y pulse enter para cambiar del modo monitor
al modo stress
. Verá una representación gráfica similar a la siguiente captura de pantalla.
Conclusión
En este artículo vimos cómo maximizar la utilización de la CPU en su sistema Linux utilizando el comando yes
dentro de un bucle for bash
para realizar una «prueba de estrés sí». A continuación, desglosamos cada parte del comando para ver exactamente lo que estaba haciendo y cómo funcionaba. Discutimos la monitorización de la utilización de la CPU para verificar que está alcanzando el 100%, luego vimos cómo instalar y usar stress
y s-tui
para realizar una prueba de estrés de la CPU.
El beneficio de usar s-tui
es que usted es capaz de monitorear el rendimiento sin usar ningún software adicional. El beneficio de usar la «prueba de estrés sí» es que usted es capaz de realizar la prueba de estrés sin tener que instalar ningún software adicional. Si usted está buscando para ejecutar más extensas pruebas de estrés y la evaluación comparativa en su sistema Linux, entonces nuestro artículo sobre cómo hacer un benchmark de su sistema linux tiene cubierto.
Deja una respuesta