LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Un administrador de sistemas puede probar cualquiera de las siguientes herramientas para poner subsistemas dados bajo una carga específica. Uno puede hacer una prueba de estrés de la CPU en otro subsistema de Linux. Los casos en los que esto es útil incluyen aquellos en los que un administrador del sistema desea realizar actividades de ajuste, un programador de kernel o libc desea evaluar las posibilidades de denegación de servicio, probar sus sistemas completamente con carga alta y monitorear la salud y más. Esto también es útil para administradores de sistemas, constructores de sistemas y overclockers que desean probar su hardware bajo una carga alta y monitorear la estabilidad y el entorno térmico.

Detalles del tutorial
Nivel de dificultad Avanzado
Privilegios de raíz
Requisitos estrés y estrés-ng
Est. tiempo de leer 8 minutos

Herramientas para realizar pruebas de esfuerzo de la CPU y la memoria (VM) en Linux/Unix

  1. stress: Es un generador de carga de trabajo simple para sistemas POSIX. Impone una cantidad configurable de estrés de CPU, memoria, E/S y disco en el sistema. Está escrito en C y es software libre con licencia GPLv2. No es un benchmark, sino una herramienta diseñada para tal propósito.
  2. stress-ng: Es una versión actualizada de la herramienta de estrés y hará una prueba de estrés de un servidor para las siguientes características:
    1. cómputo de la CPU
    2. Golpe de caché
    3. Estrés de Unidades
    4. sincronizaciones de E/S
    5. estrés de la máquina virtual
    6. Estrés de Sockets
    7. Cambio de contexto
    8. Proceso de creación y terminación.
    9. Incluye más de 60 pruebas de estrés diferentes, más de 50 pruebas de estrés específicas de CPU que ejercitan punto flotante, entero, manipulación de bits y flujo de control, más de 20 pruebas de estrés de memoria virtual.

Advertencia: Se recomienda ejecutar las siguientes herramientas con privilegios de root para evitar falta de memoria y otros errores. Además, tenga en cuenta que las herramientas estresarán los recursos de su servidor rápidamente, así que use el siguiente comando con prudencia.

Primeros pasos con la herramienta de estrés en Linux

Se supone que este programa es fácil de usar y recomendado para nuevos administradores de sistemas. Se sabe que la herramienta funciona en x86 Linux y FreeBSD/OpenBSD, powerpc AIX y Linux, SPARC Solaris, Compaq Alpha Tru64 UNIX y muchos otros.

Instalar el paquete de estrés en un Linux

Puede instalar estrés como parte de la distribución de Linux o Unix.

Instale estrés en CentOS, RHEL y Fedora Linux

Primero, habilite el repositorio EPEL y luego escriba el siguiente comando yum para instalar el mismo:

sudo yum install stress

Instalar estrés en un Debian y Ubuntu Linux

Escriba el siguiente comando apt-get para instalar el mismo:

apt-get install stress

Instalar estrés en un sistema FreeBSD Unix

Escriba el siguiente comando pkg para instalar la herramienta de estrés usando el método binario:

pkg install stress
## O ##
pkg install sysutils/stress

Instalar estrés en un sistema OpenBSD Unix

Escriba el siguiente comando pkg_add para instalar la herramienta de estrés usando el método binario:

## si la ruta de instalación no está configurada en /etc/pkg.conf de la siguiente manera ##
## installpath = http://mirror.esc7.net/pub/OpenBSD/%c/packages/%a/ use ## 
## PKG_PATH ##
export PKG_PATH=http://ftp.usa.openbsd.org/pub/OpenBSD/`uname -r`/packages/`arch -s` 
pkg_add stress

¿Cómo uso la herramienta de estrés en Linux?

Primero, anote los promedios de carga actuales del sistema escribiendo el siguiente comando:

# uptime

A continuación, ejecute cualquiera de los siguientes comandos para ver la carga en la pantalla:

# watch uptime

O use el comando tload :

# tload

La sintaxis es la siguiente:

stress [OPCIÓN]
## Estrés usando una tarea vinculada a la CPU
stress -c 4
## Estrés usando una tarea enlazada a IO
stress -i 2

Por ejemplo, se impone un promedio de carga de cuatro en el sistema al especificar dos procesos vinculados a la CPU, un proceso vinculado a E/S y un proceso de asignación de memoria de la siguiente manera:

# uptime

# stress -c 2 -i 1 -m 1 --vm-bytes 128M -t 10s

# uptime

Salidas de muestra:

 

[root@localhost ]# uptime                v
07:44:52 up 6:15, 1 user, load average: 0.84, 0.71, 0.59
[root@localhost ]# stress -c 2 -i 1 -m 1 --vm-bytes 128M -t 10s

strees: info: [25326] dispatching hogs: 2 cpu, 1 io, 1 vm 0 hdd
strees: info: [25326] successful run completed in 13s

[root@localhost ]# uptime
07:44:52 up 6:15, 1 user, load average: 1.23, 0.71, 0.59
^

Fig.04: Se impone una carga promedio de cuatro al sistema

Dónde,

  • -c 2: genera dos trabajadores girando en sqrt ()
  • -i 1: genera un trabajador girando en sincronización ()
  • -m 1: Engendra un trabajador girando en malloc()/free()
  • --vm-bytes 128M: Malloc 128 MB por trabajador de máquina virtual (el valor predeterminado es 256 MB)
  • -t 10s: Tiempo de espera después de diez segundos
  • -v: Sea detallado

Primeros pasos con stress-ng en Linux y Unix

La herramienta stress-ng pondrá a prueba un sistema informático Linux de varias formas seleccionables.

Instale stress-ng en un sistema Linux o similar a Unix

Escriba el siguiente comando para descargar stress-ng tarball usando el comando wget :

$ cd /tmp
$ wget http://kernel.ubuntu.com/~cking/tarballs/stress-ng/stress-ng-0.09.34.tar.xz

Untar el paquete

$ tar xvf stress-ng-0.09.34.tar.xz

Compile stress-ng, ejecute:

$ cd stress-ng-0.09.34
$ make

Salidas de muestra:

hacer -f Makefile.config
make[1]: Ingresando al directorio '/tmp/stress-ng-0.09.34'
configuración automática: usando -lcrypt
configuración automática: usando pthread spinlock
configuración automática: usando -lrt
configuración automática: usando -lz
configuración automática: usando -ldl
configuración automática: usando -lpthread
configuración automática: usando wchar.h
configuración automática: usando grp.h
configuración automática: usando sys/xattr.h
configuración automática: usando sys/syscall.h
.....
...
.....
CC mwc.c
CC parse-opts.c
CC sin memoria.c
CC net.c
CC programado.c
Configuración de CC.c
CC zona termal.c
Cuña CC.c
CC perf.c
CC thrash.c
CC tiempo.c
CC estrés-ng.c
CC estrés-personalidad.c
LD estrés-ng
make[1]: dejando el directorio '/tmp/stress-ng-0.09.34'

También puede instalarlo usando el comando snap o el comando apt-get :

$ sudo apt install stress-ng

¿Cómo uso la herramienta stress-ng en Linux?

La sintaxis es:

stress-ng [opciones]
stress-ng -c 2
stress-ng -c 4 -t 10 -v
stress-ng -c 4 --metrics-brief

Ejemplos

Siempre anote la salida del comando uptime antes de iniciarlo:

uptime

Veamos algunos ejemplos de stress-ng.

Prueba de esfuerzo de la CPU Unix/Linux

Comencemos a N trabajadores ejercitando la CPU trabajando secuencialmente a través de todos los diferentes métodos de estrés de la CPU:

uptime
stress-ng --cpu 4 --timeout 60s --metrics-brief

Prueba de esfuerzo de la CPU Unix/Linux

Para que N trabajadores de inicio de disco escriban, lean y eliminen continuamente archivos temporales:

stress-ng --disk 2 --timeout 60s --metrics-brief

Se puede pasar la opción --io N al comando stress-ng para enviar la memoria caché del búfer al disco:

stress-ng --disk 2 --io 2 --timeout 60s --metrics-brief

Prueba de estrés de memoria Unix/Linux

Vamos a poblar la memoria. Use mmap N bytes por trabajador de máquina virtual, el valor predeterminado es 256 MB. Se puede especificar el tamaño como % de la memoria total disponible o en unidades de Bytes, KBytes, MBytes y GBytes usando el sufijo b, k, m o g:

stress-ng --vm 2 --vm-bytes 1G --timeout 60s

Comenzará --vm 2N trabajadores (2 trabajadores) llamando continuamente a mmap/munmap y escribiendo en la memoria asignada. Tenga en cuenta que esto puede hacer que los sistemas disparen el kernel OOM killer en los sistemas Linux si no hay suficiente memoria física e intercambio disponibles.

Poniendolo todo junto

Para ejecutar durante 60 segundos con 4 factores de estrés de CPU, 2 factores de estrés de io y 1 factor de estrés de vm usando 1 GB de memoria virtual, ingrese:

stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 1G --timeout 60s --metrics-brief

En este ejemplo, ejecute 16 factores de estrés de CPU y se detenga después de 900000 operaciones:

stress-ng --cpu 16 --cpu-ops 900000
stress-ng --cpu 16 --cpu-ops 900000 --timeout 16

Salidas de muestra:

stress-ng: info: [30367] despachando cerdos: 16 cpu
stress-ng: info: [30367] ejecución exitosa completada en 60,17 s (1 min, 0,17 s)

Para ejecutar 4 instancias simultáneas de todos los factores estresantes secuencialmente uno por uno, cada uno durante 6 minutos y resúmenes con métricas de rendimiento al final:

stress-ng --sequential 4 --timeout 6m --metrics

Para ejecutar 2 estresores de CPU de FFT, deténgase después de 5000 operaciones de bogo y produzca un resumen solo para los resultados de FFT:

stress-ng --cpu 2 --cpu-method fft --cpu-ops 5000 --metrics-brief

Para ejecutar los factores de estrés de la CPU en todas las CPU en línea que funcionan con todos los factores de estrés de la CPU disponibles durante 2 horas:

stress-ng --cpu 0 --cpu-method all -t 2h

Para ejecutar 2 instancias de todos los factores estresantes durante 10 minutos:

stress-ng --all 2 --timeout 10m

Para ejecutar 128 factores estresantes que se eligen aleatoriamente de todos los factores estresantes disponibles:

stress-ng --random 128

Para ejecutar 64 instancias de todos los diferentes factores de estrés de la CPU y verificar que los cálculos sean correctos durante 5 minutos con un resumen de operaciones bogo al final:

stress-ng --cpu 64 --cpu-method all --verify -t 5m --metrics-brief

Para ejecutar todos los factores de estrés uno por uno durante 5 minutos, con la cantidad de instancias de cada factor de estrés que coincida con la cantidad de CPU en línea:

stress-ng --sequential 0 -t 5m

Para ejecutar todos los factores estresantes en la clase io uno por uno durante 1 minuto cada uno, con 8 instancias de cada factor estresante ejecutándose simultáneamente y mostrar las estadísticas generales de utilización del tiempo al final de la ejecución:

stress-ng --sequential 8 --class io -t 1m --times

¿Debo ejecutar stess-ng con acceso de root?

De la página del manual:

Ejecutar stress-ng con privilegios de root ajustará la configuración de la memoria en los sistemas Linux para que los factores estresantes no se puedan eliminar en situaciones de poca memoria, así que utilícelo con prudencia. Con el privilegio apropiado, stress-ng puede permitir que se ajusten la clase de ionice y los niveles de ionice, nuevamente, esto debe usarse con cuidado. Sin embargo, algunas opciones requieren privilegios de root para modificar varios controles de la interfaz /sys. Consulte la página del manual del comando stess-ng para obtener más información.

Conclusión

Acaba de aprender a usar el comando stess y stress-ng para imponer una alta carga de CPU en sistemas Linux y similares a Unix.

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías