1. Introducción al estrés
1. Introducción al estrés
Stress es una herramienta de prueba de estrés para Linux, que puede realizar pruebas de estrés en CPU, memoria, E / S y disco.
2. Instalación de estrés
instalación:sudo yum install stress
Dos, uso de estrés
1. El comando del estrés
stress [OPTION [ARG]]
-c, --cpu N: Genera N procesos, y cada proceso llama cíclicamente a la función sqrt para generar presión de CPU.
-i, --io N: Genera N procesos, cada proceso llama cíclicamente a la sincronización para escribir el contenido del búfer de memoria en el disco, generando presión IO. La sincronización de llamadas del sistema actualiza los datos del búfer de memoria en el disco para garantizar la sincronización. Si hay menos datos en el búfer, se escriben menos datos en el disco y no se generará presión de E / S. Esto es especialmente obvio en el entorno de disco SSD. Es posible que iowait sea siempre 0, pero debido a que una gran cantidad de llamadas a la sincronización de llamadas del sistema, aumenta la tasa de uso de CPU del sistema sys.
-m, --vm N: genera N procesos, y cada proceso llama a la función malloc / free para asignar y liberar memoria en un bucle.
--vm-bytes B: Especifica el tamaño de la memoria asignada
--vm-stride B: Asigna constantemente valores a una parte de la memoria para permitir que ocurra COW (Copia en escritura)
--vm-hang N: Indica que se asigna cada proceso que consume memoria Después de alcanzar la memoria, vaya a dormir durante N segundos, luego libere la memoria y repita este proceso
--vm-keep: siempre ocupa memoria, que es diferente de la liberación y reasignación continuas (el valor predeterminado es liberar y reasignar memoria continuamente)
-d, --hdd N: genera N procesos que ejecutan continuamente funciones de escritura y desvinculación (crear archivos, escribir contenido, eliminar archivos)
--hdd-bytes B: especificar el tamaño del archivo
--hdd-noclean: no escribir datos ASCII aleatorios Desvincular
-t, --timeout N: finaliza el programa después de N segundos
--backoff N: espera a que N microsegundos comience a ejecutarse
-q, --quiet: el programa no genera información durante el proceso en ejecución
-n, - ejecución en seco: muestra lo que hará el programa sin realizar operaciones relacionadas
--version: muestra el número de versión
-v, --verbose: muestra información detallada
2. prueba de CPU
stress --cpu 2 --timeout 60
Inicie 2 procesos de la CPU para realizar el cálculo sqrt, que finalizará después de 60 segundos
3. Prueba de IO
stress --io 2 --timeout 60s
Inicie 2 procesos de E / S, ejecute la llamada al sistema de sincronización, vacíe el búfer de memoria en el disco y
use stress no puede simular el aumento de iowait, sino el aumento de sys. El parámetro stress -i indica que el sistema llama a la sincronización para simular problemas de E / S, pero la sincronización actualiza los datos del búfer de memoria en el disco para garantizar la sincronización. Si no hay muchos datos en el búfer de memoria, no habrá muchos datos leídos y escritos en el disco y no se puede generar presión de E / S. Esto es particularmente obvio en el entorno donde se utilizan discos SSD. Iowait es siempre 0, pero debido a una gran cantidad de llamadas al sistema, la tasa de uso de la CPU del sistema sys aumenta. stress --io 2 --hdd 2 --timeout 60s
Abra 2 procesos de E / S, 2 procesos de E / S de disco
4. Prueba de memoria
stress --vm 2 --vm-bytes 1G --vm-hang 100 --timeout 100s
Inicie 2 procesos para asignar memoria, asigne 1 GB de memoria cada vez, libérelo después de 100 segundos y salga después de 100 segundos.
5. Prueba de E / S de disco
stress --hdd 2 --hdd-bytes 10G --backoff 2000000
Inicie 2 procesos de E / S de disco, escriba 10 GB de datos en el disco cada vez
Tres, escenario de prueba de estrés
1. Procesos intensivos en CPU
stress --cpu 2 --timeout 600
Simule el inicio de dos procesos con uso intensivo de la CPU para uptime
ver la carga promedio del sistema, de la siguiente manera: mpstat -P ALL 5 1
vea el uso de la CPU, de la siguiente manera: pidstat -u 5
vea la carga del proceso, de la siguiente manera:
(1) Puede observar la carga promedio más alta del sistema a través del tiempo de actividad.
(2) Observó por mpstat que el uso de CPU en modo de usuario de CPU0 y CPU2 es muy alto, y iowait es 0, lo que indica que el proceso consume mucha CPU. El uso intensivo de la CPU por parte de los procesos conduce a una mayor carga promedio del sistema y un mayor uso de la CPU.
(3) Puede utilizar pidstat para comprobar que el proceso de estrés provoca un uso elevado de la CPU.
2. Procesos intensivos en IO
stress -i 1 --hdd 1 --timeout 600
Simule a un trabajador que llama a la sincronización para vaciar el búfer de memoria y escribir en el disco. uptime
Verifique la carga promedio del sistema, de la siguiente manera: mpstat -P ALL 5
Verifique el uso de la CPU, de la siguiente manera:
(1) Se puede observar a través del tiempo de actividad que la carga promedio del sistema es muy alta.
(2) Observó por mpstat que el uso de la CPU en modo kernel es muy bajo, pero el iowait es muy alto y ha estado esperando el procesamiento de IO, lo que indica que el proceso es intensivo en IO. Los procesos realizan con frecuencia operaciones de E / S, lo que resulta en una carga promedio alta del sistema y un bajo uso de la CPU.
3. Espere el proceso de la CPU
La máquina tiene 4 CPU lógicas y simula 8 procesos. stress -c 8 --timeout 600
Simule 8 procesos con uso intensivo de CPU para uptime
ver la carga promedio del sistema, de la siguiente manera:
mpstat -P ALL 5
Vea el uso de CPU, de la siguiente manera: pidstat -u 5
Vea el uso de CPU del proceso, de la siguiente manera:
(1) Observe que la carga promedio del sistema es alta durante el tiempo de actividad
(2) ) Observó por mpstat que el uso de la CPU en modo de usuario es muy alto, y iowait es 0, lo que indica que el proceso consume mucha CPU o que hay contención de CPU entre procesos.
(3) El alto índice de espera observado por pidstat indica que hay contención de CPU entre procesos y hay una gran cantidad de procesos en el sistema esperando para usar la CPU.
4. Introducción al estrés-ng
1. Introducción al estrés-ng
Stress-ng es totalmente compatible con el estrés, y se agregan cientos de parámetros opcionales sobre la base del estrés para respaldar la generación de varios esfuerzos complejos.
2. Instalación de Stress-ng
descarga de fuente de stress-ng: https://kernel.ubuntu.com/~cking/tarballs/stress-ng/
compilar: make
instalar:sudo make install
3. El comando stress-ng
stress-ng [OPTION [ARG]]
stress-ng --cpu 2 --cpu-method pi
Genere 2 trabajadores para hacer el algoritmo pi. Presión stress-ng --cpu 2 --cpu-method all
genere 2 trabajadores use iterativamente más de 30 algoritmos de presión diferentes, incluidos pi, crc16, fft, etc. stress-ng --sock 2
Genere 2 trabajadores llamada funciones relacionadas con socket para generar presión stress-ng --tsc 2
genere 2 trabajadores lea tsc para generar presión stress-ng --sock 4 --taskset 0-1,3
strss- ng asignar la presión a la CPU especificada