Skip to content

Instantly share code, notes, and snippets.

@ErnestoCobos
Created September 17, 2024 00:55
Show Gist options
  • Save ErnestoCobos/b124837686498802e0b99ed742ff8cf2 to your computer and use it in GitHub Desktop.
Save ErnestoCobos/b124837686498802e0b99ed742ff8cf2 to your computer and use it in GitHub Desktop.

Script de Pruebas de Estrés para CPU, RAM, Almacenamiento y GPUs NVIDIA en Parrot OS

Este documento proporciona instrucciones para instalar las herramientas necesarias y ejecutar un script de pruebas de estrés que maximiza el uso de CPU, RAM, almacenamiento y GPUs NVIDIA en Parrot OS.

⚠️ Advertencia Importante:

  • Riesgo de Daño al Hardware: Ejecutar pruebas de estrés intensivas puede causar sobrecalentamiento o daños en los componentes de hardware. Asegúrate de contar con sistemas de enfriamiento adecuados y de monitorear las temperaturas durante las pruebas.
  • Riesgo de Pérdida de Datos: Las pruebas de almacenamiento pueden afectar los datos existentes. Realiza copias de seguridad de información importante antes de proceder.
  • Responsabilidad: Procede bajo tu propia responsabilidad. Asegúrate de comprender los riesgos involucrados.

Tabla de Contenidos


Requisitos Previos

  • Sistema Operativo: Parrot OS
  • Privilegios de Usuario: Acceso administrativo (sudo)
  • Hardware: CPU, RAM, dispositivos de almacenamiento y una o más GPUs NVIDIA

Instalación

Instalar Herramientas Necesarias

Abre una terminal y ejecuta los siguientes comandos para instalar las herramientas necesarias:

sudo apt update
sudo apt install stress stress-ng fio git build-essential nvidia-cuda-toolkit lm-sensors
  • stress / stress-ng: Herramientas para estresar CPU y RAM.
  • fio: Herramienta flexible para pruebas de I/O en dispositivos de almacenamiento.
  • git y build-essential: Necesarios para clonar y compilar gpu-burn.
  • nvidia-cuda-toolkit: Proporciona las bibliotecas CUDA necesarias para las pruebas en GPUs NVIDIA.
  • lm-sensors: Herramienta para monitorear temperaturas del hardware.

Descargar y Compilar gpu-burn

gpu-burn es una herramienta utilizada para pruebas de estrés en GPUs NVIDIA.

  1. Clonar el repositorio de gpu-burn:

    git clone https://github.com/wilicc/gpu-burn.git
  2. Navegar al directorio gpu-burn:

    cd gpu-burn
  3. Compilar gpu-burn:

    make

    Esto generará el ejecutable gpu_burn.

  4. Volver al directorio anterior:

    cd ..

Script de Pruebas de Estrés

Crea un archivo llamado full_stress_test.sh y copia el siguiente contenido:

#!/bin/bash

# Duración de las pruebas en segundos
DURATION=300  # Ajusta este valor según tus necesidades

# Función para monitorear temperaturas (opcional)
monitor_temperature() {
    while true; do
        clear
        echo "Temperaturas:"
        sensors
        sleep 5
    done
}

# Iniciar monitoreo de temperatura en segundo plano (opcional)
monitor_temperature &
TEMP_PID=$!

# Prueba de CPU
echo "Iniciando prueba de estrés en CPU..."
if command -v stress &> /dev/null; then
    stress --cpu "$(nproc)" --timeout "$DURATION" &
elif command -v stress-ng &> /dev/null; then
    stress-ng --cpu "$(nproc)" --timeout "$DURATION" &
else
    echo "No se encontró 'stress' ni 'stress-ng'."
fi

# Prueba de RAM
echo "Iniciando prueba de estrés en RAM..."
if command -v stress &> /dev/null; then
    stress --vm 2 --vm-bytes 90% --timeout "$DURATION" &
elif command -v stress-ng &> /dev/null; then
    stress-ng --vm 2 --vm-bytes 90% --timeout "$DURATION" &
fi

# Prueba de Almacenamiento
echo "Iniciando prueba de estrés en Almacenamiento..."
fio --name=stress_disk --filename=stress_test_file --size=1G --time_based --runtime="$DURATION" --rw=randrw --rwmixread=50 --ioengine=libaio --iodepth=64 &

# Prueba de GPU (solo NVIDIA)
echo "Iniciando prueba de estrés en GPU NVIDIA..."

# Detectar GPUs NVIDIA
NVIDIA_GPUS=$(lspci | grep -i nvidia)

if [ ! -z "$NVIDIA_GPUS" ]; then
    echo "Se detectó GPU NVIDIA. Iniciando gpu_burn..."
    # Ejecutar gpu_burn por el tiempo especificado
    ./gpu-burn/gpu_burn "$DURATION" &
else
    echo "No se detectaron GPUs NVIDIA compatibles."
fi

# Esperar a que terminen todas las pruebas
wait

# Detener monitoreo de temperatura
kill "$TEMP_PID"

# Limpieza
rm -f stress_test_file

echo "Pruebas de estrés completadas."

Explicación del Script

  • Configuración de Duración: La variable DURATION establece la duración de cada prueba (en segundos). Ajusta este valor según tus necesidades.
  • Monitoreo de Temperatura: La función monitor_temperature utiliza sensors para mostrar las temperaturas del hardware cada 5 segundos.
  • Prueba de CPU: Utiliza todos los núcleos disponibles para maximizar el uso de la CPU durante el tiempo especificado.
  • Prueba de RAM: Consume hasta el 90% de la RAM para estresar la memoria.
  • Prueba de Almacenamiento: Realiza operaciones de lectura/escritura aleatorias en un archivo de 1 GB.
  • Prueba de GPU NVIDIA: Utiliza gpu_burn para estresar las GPUs NVIDIA detectadas.
  • Procesos en Segundo Plano: Las pruebas se ejecutan en segundo plano para permitir que todas se ejecuten simultáneamente.
  • Limpieza: Elimina el archivo de prueba creado durante la prueba de almacenamiento.
  • Mensaje de Finalización: Informa al usuario cuando todas las pruebas han sido completadas.

Cómo Ejecutar el Script

  1. Guardar el Script:

    Guarda el script como full_stress_test.sh en tu directorio deseado.

  2. Hacer el Script Ejecutable:

    chmod +x full_stress_test.sh
  3. Asegurar que el Directorio gpu-burn Está en la Misma Ubicación:

    Asegúrate de que el directorio gpu-burn (desde el paso de compilación) esté en el mismo directorio que el script, o ajusta el script para apuntar a la ruta correcta de gpu_burn.

  4. Ejecutar el Script con Privilegios Administrativos:

    sudo ./full_stress_test.sh

    Nota: Ejecutar como sudo garantiza que el script tenga los permisos necesarios para ejecutar todas las pruebas y acceder a la información del hardware.


Monitoreo Durante las Pruebas

Es importante monitorear los recursos del sistema y las temperaturas durante las pruebas para prevenir daños al hardware.

Monitorear Uso de CPU y RAM

  • Usando htop:

    sudo apt install htop
    htop

Monitorear Uso de GPUs NVIDIA

  • Usando nvtop:

    sudo apt install nvtop
    nvtop

Monitorear Temperaturas

  • Usando sensors:

    watch sensors

Precauciones

  • Enfriamiento Adecuado: Asegúrate de que tu sistema tenga una ventilación adecuada para manejar la carga aumentada.

  • No Dejar Sin Supervisión: Supervisa el sistema durante las pruebas para reaccionar rápidamente si surgen problemas.

  • Umbrales de Temperatura: Conoce las temperaturas de funcionamiento seguras para tu hardware. Si las temperaturas exceden los límites seguros, interrumpe las pruebas de inmediato.

  • Interrupción de las Pruebas: Si es necesario, puedes detener todas las pruebas matando los procesos:

    sudo pkill stress
    sudo pkill stress-ng
    sudo pkill gpu_burn
    sudo pkill fio

Análisis de Resultados

Después de completar las pruebas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment