LinuxParty
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 | Sí |
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
- 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.
- 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:
- cómputo de la CPU
- Golpe de caché
- Estrés de Unidades
- sincronizaciones de E/S
- estrés de la máquina virtual
- Estrés de Sockets
- Cambio de contexto
- Proceso de creación y terminación.
- 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
^
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.
-
Linux
- Cambiar la Hora y la Fecha al sistema Linux
- Montar un directorio remoto, vía NFS, en Linux
- Predicciones de Linux para 2025
- Elementary OS 8: una distribución de Linux para usuarios de Windows y macOS
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- Mis predicciones sobre Linux para 2025: será un buen año
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad