5 puntos por GN⁺ 2025-08-01 | 2 comentarios | Compartir por WhatsApp
  • En un MacBook Pro Silicon M1 Max se vivió un consumo de batería durante toda la noche
  • Intenté analizar los logs de administración de energía yo mismo, pero hubo límites para identificar la causa del problema
  • Fue posible verificar visualmente los eventos de wake usando la aplicación dedicada Sleep Aid
  • En la configuración de Sleep Aid, descubrí que la desactivación de "Despertar para mantenimiento (Wake for maintenance)" era la causa
  • Después de volver a activar esa opción, el problema de consumo nocturno de batería se resolvió

Mi experiencia con el consumo nocturno de batería en MacBook Pro

  • He usado un MacBook Pro Silicon M1 Max durante varios años
  • Recientemente apareció el síntoma de que, si dejaba el portátil sin conectar a la corriente, la batería se agotaba mucho durante toda la noche
  • A medida que el síntoma empeoró, comencé a investigar la causa directamente

Intento de análisis de logs de administración de energía

  • En macOS, el comando de terminal pmset -g log permite revisar los logs relacionados con la administración de energía
  • Como la salida de ese log es vasta y difícil de interpretar, para analizarlo usé una herramienta simple que desarrollé, llamada pmset-analyzer
  • Sin embargo, esta herramienta por sí sola no fue de gran ayuda para llegar a una solución real

Ajuste fino de configuración e investigación adicional

  • Probé uno por uno los ajustes de gestión de energía como tcpkeepalive según lo indicado en la documentación oficial y la comunidad
  • Solo con cambiar configuraciones, no vi un gran efecto en la resolución del problema

Resolución del problema con la app Sleep Aid

  • Durante la investigación adicional conocí la app Sleep Aid
    • Esta app muestra visualmente el evento de wake (wake event) y ofrece una interfaz para cambiar de forma intuitiva varias configuraciones de gestión de energía
  • Al revisar en Sleep Aid, vi que la opción "Despertar para mantenimiento (Wake for maintenance)" estaba desactivada
  • Según la descripción de la app, con esta configuración desactivada pueden producirse wake events frecuentes
  • Volví a activar esa opción y, desde entonces, no ocurre consumo de batería durante toda la noche

2 comentarios

 
ahwjdekf 2025-08-02

Pongo la MacBook en modo de suspensión para dormir, y de repente en la madrugada se enciende la pantalla y me ilumina todo el cuarto. Me ha pasado muchas veces que me despierto por eso y termino apagándola por completo. Ya lleva tiempo siendo tema de discusión, y todavía sigue igual...

 
GN⁺ 2025-08-01
Comentarios en Hacker News
  • Otro tip útil más. Si abres la pestaña Energy en Activity Monitor y ordenas por la columna "Preventing sleep", puedes ver qué app está impidiendo que macOS entre en reposo. En mi caso confirmé que la causante era Devonthink. Todavía no he enviado un bug report. Me parece extraño que la gestión de energía de Apple no le avise al usuario de este tipo de problema. ¿Acaso no es importante una situación en la que la Mac se calienta dentro de la mochila y se le drena la batería? Mientras tanto, que Chrome siga preguntando si puede permitir la detección de dispositivos en la red parece mucho menos importante
    • Me sorprende que la gestión de energía de Apple no advierta sobre esto, pero me sorprende aún más que alguna app pueda impedir que el sistema duerma incluso cuando cierras la tapa. Entiendo que a veces se necesite evitar el reposo por timeout, como en un reproductor de video. Pero casi no hay casos realmente útiles donde una app deba decidir que el sistema no duerma cuando cierras la tapa o presionas el botón de reposo. En la mayoría de los casos, esto solo aumenta la probabilidad de terminar con una laptop recalentada dentro de la mochila. Peor aún, hasta una sola página web puede impedir que el sistema entre en reposo, así que es difícil encontrar cuál de las 70 pestañas es la culpable. Sería bueno separar el permiso para evitar el reposo por timeout del permiso para cambiar comportamientos centrales como "al cerrar la tapa siempre dormir". Se podría permitir el uso por timeout, pero cosas como el cierre de tapa deberían notificarse y requerir autorización explícita del usuario
    • No sabía que cualquier app podía impedir el reposo de todo el sistema. Ese permiso debería estar bajo control del usuario. Me pregunto si no debería requerirse al menos un entitlement para que un desarrollador pueda llamar esa API
    • Si usas en shell el comando pmset -g assertions, puedes ver qué procesos están impidiendo el reposo del sistema y obtener detalles de las power assertions pendientes. pmset también tiene comandos que no aparecen en la documentación oficial, pero se pueden ver en el código fuente que Apple publica. También hay un comando para hacer que se ignore una assertion específica. Solo que si desactivas la assertion "UserIsActive", puede costarte trabajo volver a despertar el sistema
    • No sabía que existía esto, gracias. Últimamente me preguntaba por qué la batería de un MacBook que no estaba usando se seguía descargando, y resultó que Firefox estaba impidiendo el reposo. Probablemente por videos con autoplay. No es perfecto, pero al menos es un problema que se puede corregir
    • Safari, por otro lado, sí muestra una alerta para que lo cierres cuando estás viendo Netflix porque consume mucha energía
  • Tuve algo parecido en mi MacBook Pro. No era un modelo Apple Silicon sino uno anterior. En ese momento había cambiado en el router el tiempo de lease DHCP a 15 minutos, mucho más bajo que el valor por defecto. Creo que el MacBook se despertaba cada 15 minutos para renovar la IP, se dormía un rato y luego volvía a despertarse, repitiendo el ciclo. Cuando devolví el tiempo de lease del router a su valor anterior por defecto, el problema de consumo de batería desapareció por completo. Era difícil imaginar esa causa, pero como justo acababa de comprar una MacBook Pro nueva, estaba más pendiente de varios detalles y por eso lo encontré rápido
    • Un cliente DHCP que funciona bien intentará renovar cuando haya pasado el 50% del tiempo del lease. O sea, es muy probable que se estuviera despertando con aún más frecuencia de la que crees
    • Me intriga por qué cambiaste el tiempo de lease DHCP a 15 minutos. Pregunto con qué objetivo lo hiciste
    • Yo también me acabo de enterar, pero el router mikrotik que uso tiene por defecto un período de lease de 10 minutos
    • Esto me parece fascinante. Me pregunto cuántos mAh consume despertarse una vez para renovar la IP. Suena a algo del orden de unos cuantos miliampere-milisegundos, porque al final la laptop solo prende el WiFi un momento e intercambia unos pocos paquetes. Claro, como era un modelo previo a Apple Silicon, también pudo haber hecho otras cosas mientras estaba despierta
    • Creo que esto es un bug de macOS. Mientras está en reposo no necesita una IP, así que despertarse para renovar un lease DHCP no es un comportamiento normal. Los sistemas operativos cuyo código no es abierto tienen este tipo de problemas
  • Si la opción “Wake for maintenance” está desactivada, Sleep Aid indica en la ventana de configuración que eso puede provocar despertares frecuentes. Me pregunto si el autor no habrá escrito por error “la opción estaba desactivada”
    • Yo pensé lo mismo. Esto es especulación, pero si esa opción está desactivada, quizá los eventos de despertar no se agrupan por hora para procesarse de una sola vez y en cambio ocurren varias veces en momentos aleatorios durante la noche. Parece precisamente la clase de fenómeno que eso explicaría
    • Me confunde. ¿Activar una opción que explícitamente despierta la computadora en realidad reduce la cantidad de veces que se despierta?
    • También estoy confundido. En la captura del autor aparece como Enable. Eso parece ser lo “normal”, así que intuitivamente no se entiende bien por qué Disabled causaría más wake events
    • Este tipo de explicación contraintuitiva necesita una aclaración adicional o al menos dejar claro que se trata de una excepción. Es difícil detectar este tipo de problema cuando editas el texto después de publicarlo
  • En todas las laptops Mac que he tenido, siempre solucioné esto configurando hibernate al cerrar la tapa. Al volver a abrirla y usarla otra vez, tarda unos 20 o 30 segundos en restaurarse, pero me parece un costo pequeño a cambio de preocuparme mucho menos por el reposo y el consumo de batería. En Terminal se puede hacer con este comando: sudo pmset -a hibernatemode 25. Para volver al valor original, usa sudo pmset -a hibernatemode 3
    • Me pregunto si el modo hibernate funciona bien con FDE (full-disk encryption). En Linux hay varias consideraciones de cifrado cuando el contenido de la memoria se escribe al disco
    • Creo que es la forma más sencilla de configurar el comportamiento que la mayoría de la gente espera
  • He investigado problemas de reposo en Macbook durante muchísimo tiempo, pero en mi caso el culpable es WindowServer y parece que al final voy a necesitar una reinstalación completa del sistema operativo. De las cosas más frustrantes está sacar de la mochila una laptop caliente y sin batería una o dos veces al mes, y que además te respondan con un "a mí nunca me pasa, seguro la estás usando mal"
  • Siento que MacOS lleva casi 10 años como en modo de mantenimiento. Imagino que portar todo a ARM/Mac Silicon debió ser muchísimo trabajo. Las actualizaciones de AI también me decepcionaron, y últimamente no siento que haya habido muchas mejoras sustanciales. Hace tiempo usé una Intel Macbook Air en la que el botón de encendido estaba pegado a Backspace, y encontré en un foro de Mac un script para que no se apagara con solo pulsarlo una vez sino que hubiera que mantenerlo presionado. Pero ese script traía escondido un troyano, así que tuve que resetear la Mac a estado de fábrica y borrar por completo iCloud. Al parecer el script tenía hasta GUIDs que parecían variables internas y podía descargar recursos desde sabe Dios dónde. Yo pensé que solo eran variables internas
  • La documentación oficial de soporte de Apple muestra que esta función (opciones de energía) viene incluida de forma nativa
    • En una M4 MacBook Air con macOS 26 DB instalada, power nap ya no aparece en ese lugar. En su lugar aparece "Wake for network access", y el valor por defecto es "Only on Power Adapter"
    • Yo también confundía power nap con "wake for network access". Parece que en macOS 26 ya no existe esa opción. En mi configuración está en "Only on Power Adapter", lo cual suena razonable. Hablo de una M4 MacBook Air
  • Yo escribí la semana pasada una entrada de blog casi idéntica. Lamentablemente, en mi caso esa solución no funcionó, porque algo distinto de power nap sigue despertándola. Post relacionado: entrada en annoying.technology
  • La pestaña Energy de Activity Monitor sirve justo para esto. Ahí puedes ver qué apps están bloqueando por completo el reposo del sistema y también el consumo de energía de cada proceso en las últimas 12 horas. Así puedes identificar al culpable de un día para otro
  • Yo también estoy teniendo un problema parecido en una MacBook Pro (Apple Silicon). Si la pongo en reposo con un SSD conectado, parece que el sistema se despierta periódicamente y activa la unidad. Al final se calientan tanto la laptop como el SSD y la batería se drena rápido. La única forma de lidiar con eso ha sido desconectar todas las unidades externas antes de dormirla y dejarla conectada al cargador. Es un bug bastante molesto. Da la impresión de que faltó control de calidad y pruebas