Optimización del rendimiento de Linux (1): herramienta de prueba de estrés

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
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés

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
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés
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
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés

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.
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés

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
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés

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:
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés
mpstat -P ALL 5 1
vea el uso de la CPU, de la siguiente manera:
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés
pidstat -u 5
vea la carga del proceso, de la siguiente manera:
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés
(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:
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés
mpstat -P ALL 5
Verifique el uso de la CPU, de la siguiente manera:
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés
(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:
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés
mpstat -P ALL 5
Vea el uso de CPU, de la siguiente manera:
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés
pidstat -u 5
Vea el uso de CPU del proceso, de la siguiente manera:
Optimización del rendimiento de Linux (1): herramienta de prueba de estrés
(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

Supongo que te gusta

Origin blog.51cto.com/9291927/2593578
Recomendado
Clasificación