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.
- 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.
- Requisitos Previos
- Instalación
- Script de Pruebas de Estrés
- Cómo Ejecutar el Script
- Monitoreo Durante las Pruebas
- Precauciones
- Análisis de Resultados
- Conclusión
- Sistema Operativo: Parrot OS
- Privilegios de Usuario: Acceso administrativo (sudo)
- Hardware: CPU, RAM, dispositivos de almacenamiento y una o más GPUs NVIDIA
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
ybuild-essential
: Necesarios para clonar y compilargpu-burn
.nvidia-cuda-toolkit
: Proporciona las bibliotecas CUDA necesarias para las pruebas en GPUs NVIDIA.lm-sensors
: Herramienta para monitorear temperaturas del hardware.
gpu-burn
es una herramienta utilizada para pruebas de estrés en GPUs NVIDIA.
-
Clonar el repositorio de
gpu-burn
:git clone https://github.com/wilicc/gpu-burn.git
-
Navegar al directorio
gpu-burn
:cd gpu-burn
-
Compilar
gpu-burn
:make
Esto generará el ejecutable
gpu_burn
. -
Volver al directorio anterior:
cd ..
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."
- 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
utilizasensors
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.
-
Guardar el Script:
Guarda el script como
full_stress_test.sh
en tu directorio deseado. -
Hacer el Script Ejecutable:
chmod +x full_stress_test.sh
-
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 degpu_burn
. -
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.
Es importante monitorear los recursos del sistema y las temperaturas durante las pruebas para prevenir daños al hardware.
-
Usando
htop
:sudo apt install htop htop
-
Usando
nvtop
:sudo apt install nvtop nvtop
-
Usando
sensors
:watch sensors
-
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
Después de completar las pruebas