Marcio Cunha

Cómo medir el consumo real de energía de la GPU en Linux

Descubre cómo monitorizar la potencia, temperatura y eficiencia energética de tu tarjeta gráfica en Linux usando herramientas como nvidia-smi y lecturas de sysfs.

Marcio Cunha•5 min
También disponible en:PortuguêsEnglish
Resumen
  • El monitoreo de energía en tarjetas gráficas previene costos excesivos de electricidad y fallas térmicas en servidores dedicados.
  • La herramienta oficial de línea de comandos de NVIDIA proporciona métricas instantáneas de vatios consumidos, relojes y ventiladores.
  • El sistema de archivos virtual del núcleo de Linux permite acceder a lecturas detalladas de hardware directamente por la terminal sin software extra.
  • La correlación entre el uso del procesador gráfico y el consumo eléctrico ayuda a dimensionar fuentes de poder y sistemas de refrigeración.
  • El uso combinado de automatización en scripts y monitoreo remoto mediante Cómo medir el consumo de energía de servidores mediante IPMI garantiza estabilidad operativa continua.

Por qué monitorizar el consumo de energía de la GPU en Linux

Gestionar servidores dedicados que ejecutan inteligencia artificial, renderizado o minería requiere control absoluto sobre el hardware. El consumo de energía de una tarjeta gráfica moderna puede superar los tres vatios bajo carga pesada, generando calor intenso y facturas eléctricas elevadas. En la práctica, monitorizar estas cifras ayuda a identificar cuellos de botella, evitar apagues por sobrecalentamiento y prever fallas antes de que ocurran.

Al tratar con infraestructura Linux, la ausencia de una interfaz gráfica obliga al administrador a dominar herramientas de texto. En lugar de depender de software visual pesado, extraemos datos precisos directamente del sistema operativo. Esto permite crear alertas automáticas y ajustar el rendimiento del hardware según la demanda real de la aplicación.

Cómo usar nvidia-smi para ver vatios y temperatura en tiempo real

Para quienes usan tarjetas NVIDIA, la utilidad nvidia-smi (System Management Interface) viene preinstalada con los drivers propietarios. Funciona como un panel de control rápido en la terminal, mostrando el uso de memoria, el porcentaje de utilización del núcleo gráfico y el consumo instantáneo de energía en vatios. En la práctica, basta un comando simple para obtener una radiografía completa de la salud de tu tarjeta.

Para mantener la lectura actualizada de forma continua, utilizamos el comando watch junto con la utilidad de la tarjeta. En la práctica, esto significa que la pantalla se actualizará cada segundo, permitiendo observar cómo el consumo eléctrico sube de inmediato al iniciar una tarea pesada. Antes de ejecutar comandos avanzados, asegúrate de que tu red y puertos estén seguros siguiendo orientaciones como Cómo abrir puertos bloqueados en el firewall UFW de Linux para evitar accesos no deseados al servidor.

watch -n 1 nvidia-smi

Este comando arroja una tabla detallada que contiene la temperatura actual, la potencia consumida en relación con el límite máximo soportado y la velocidad de los ventiladores. Si notas que la temperatura se acerca al límite crítico, el propio controlador reduce la velocidad del procesador para evitar daños permanentes, un mecanismo conocido como thermal throttling.

Extrayendo métricas detalladas con consultas dirigidas

La salida estándar de nvidia-smi muestra mucha información visual, pero no siempre es ideal para scripts de automatización. Para sistemas que guardan registros en archivos o envían métricas a software de monitoreo, necesitamos extraer solo el dato numérico puro. Podemos lograr esto utilizando parámetros específicos de consulta que filtran la salida para devolver únicamente lo que importa.

El siguiente comando interroga al controlador para devolver estrictamente la potencia actual consumida en vatios, sin saturar la pantalla con tablas o bordes decorativos. En la práctica, esto simplifica la creación de scripts en Bash que verifican el gasto energético cada minuto y registran el historial en disco.

nvidia-smi --query-gpu=power.draw --format=csv,noheader

Además de la potencia, puedes consultar el uso de memoria dedicado, la frecuencia actual de los núcleos y la temperatura ambiente del componente en la misma línea de comandos. Esta versatilidad hace que la herramienta sea indispensable para ingenieros de infraestructura que necesitan auditar el consumo eléctrico de múltiples servidores de forma simultánea.

Accediendo a lecturas de hardware directamente mediante sysfs

Aunque nvidia-smi funciona perfectamente para tarjetas NVIDIA, los servidores modernos también utilizan gráficos integrados de Intel o tarjetas AMD, exigiendo un enfoque universal. Aquí es donde entra sysfs, un sistema de archivos virtual del núcleo de Linux que expone información sobre componentes físicos de la computadora en directorios de texto estándar. En la práctica, el sistema operativo trata los sensores de hardware como archivos simples que pueden leerse con comandos comunes.

Para encontrar los datos térmicos y de energía de tu tarjeta en sysfs, generalmente navegamos al directorio de hardware del núcleo. La lectura se puede hacer rápidamente usando el comando cat para mostrar el contenido del archivo de temperatura o voltaje correspondiente, tal como se muestra en el ejemplo a continuación.

cat /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input

Como el nombre exacto de la carpeta hwmon puede variar dependiendo del bus PCI y los drivers cargados, solemos usar comodines o crear scripts de escaneo. Esta lectura directa del sistema de archivos es sumamente ligera y no requiere instalar paquetes propietarios pesados, siendo ideal para entornos minimalistas de contenedores y servidores ligeros.

Cómo automatizar el monitoreo de energía en scripts

Recopilar datos manualmente no resuelve problemas a largo plazo; necesitamos registrar el comportamiento de la GPU a lo largo de las horas para identificar picos de consumo. Podemos crear un script simple en Bash que ejecute lecturas periódicas y guarde los resultados con marcas de tiempo en un archivo de texto. En la práctica, esto permite auditar si una aplicación específica está desperdiciando energía durante los fines de semana.

El script a continuación ejecuta un bucle infinito que captura el consumo de energía actual cada cinco segundos y adjunta la información a un archivo de registro. Para detener la ejecución, simplemente presiona las teclas Ctrl y C en tu teclado.

while true; do date +'%Y-%m-%d %H:%M:%S'; nvidia-smi --query-gpu=power.draw --format=csv,noheader; sleep 5; done > gpu_power_log.txt

Con este archivo generado, puedes importar los datos a hojas de cálculo o herramientas de visualización para generar gráficos precisos de eficiencia energética. Este tipo de auditoría ayuda a las empresas a reducir significativamente la factura de luz en sus centros de datos dedicados.

Consideraciones finales sobre eficiencia y monitoreo

Medir el consumo real de energía de la GPU en Linux dejó de ser un lujo y se convirtió en una necesidad operativa para quienes administran hardware de alto rendimiento. Dominar el uso de nvidia-smi y comprender cómo el núcleo expone datos mediante sysfs capacita al administrador para mantener servidores seguros, fríos y económicamente viables. Al unir estas prácticas de monitoreo con una adecuada planeación de infraestructura, garantizas que tus recursos computacionales entreguen máximo rendimiento sin sorpresas en el recibo de electricidad a fin de mes.