9 votos

Picos de latencia en el wifi: ¿medida de ahorro de energía?

Veo picos de latencia intermitentes cuando estoy en wifi, pero sólo cuando hago ping a mi MBP desde otra máquina y no cuando hago ping desde el MBP a otra máquina. Parece que está causando tartamudeo con Steam In-Home Streaming. Se agradece cualquier sugerencia.

Estoy convencido de que se trata del Mac y no del hardware de red. Lo he visto en múltiples puntos de acceso de diferentes proveedores y canales. Tanto el 2.4G como el 5G se ven afectados.

Con el registro de wifi activado, no se registra nada /var/log/wifi.log durante la prueba de ping. Los servicios de localización están desactivados y no hago clic en el icono de wifi durante la prueba. He probado a reiniciar el SMC.

Actualización : A continuación se muestra el ejemplo mínimo. He realizado esta prueba muchas veces y durante mucho tiempo. He estado constantemente ingiriendo datos de ping en InfluxDB usando Telegraf. Aquí son los últimos 7 días, donde el naranja es mi MacBook. Hay un par de otras anomalías presentes, pero está claro que la alta latencia ha estado ocurriendo durante un tiempo.

Actualización 2 : Wireshark en el MBP muestra el "Tiempo de Respuesta" ICMP como consistentemente < 0.1ms durante la prueba. Creo que está mirando el tiempo entre el momento en que se ve la solicitud de entrada de la respuesta salir.

Esta es la prueba. 192.168.1.242 es mi MBP. Después de salir de (casi) todas las aplicaciones:

craig@pluto ~> ping 192.168.1.242 -i 2
...
22 packets transmitted, 22 received, 0% packet loss, time 78ms
rtt min/avg/max/mdev = 1.037/*22.550*/*89.237*/28.546 ms

Pero los pings salientes están bien:

craig@Craigs-MBP ~> ping 192.168.1.3 -i 2
...
266 packets transmitted, 266 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.909/1.526/8.716/0.686 ms

Esto es algo curioso. Si envío rápidamente pings hacia fuera, ¡la varianza de entrada desaparece!

craig@Craigs-MBP ~> ping 192.168.1.3 -i 0.2
...
417 packets transmitted, 417 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.984/1.469/3.799/0.290 ms

(mientras se ejecuta lo anterior)

craig@pluto ~> ping 192.168.1.242 -i 2
...
38 packets transmitted, 38 received, 0% packet loss, time 147ms
rtt min/avg/max/mdev = 1.001/*1.664*/3.758/0.767 ms

Teniendo en cuenta esto, mi mejor suposición es que hay algún tipo de mecanismo de ahorro de energía que apaga la radio.

craig@Craigs-MBP ~> pmset -g
System-wide power settings:
Currently in use:
 standbydelaylow      10800
 standby              1
 womp                 0
 halfdim              1
 hibernatefile        /var/vm/sleepimage
 powernap             1
 gpuswitch            2
 networkoversleep     0
 disksleep            10
 standbydelayhigh     86400
 sleep                0
 autopoweroffdelay    28800
 hibernatemode        3
 autopoweroff         1
 ttyskeepawake        1
 displaysleep         10
 highstandbythreshold 50
 acwake               0
 lidwake              1

enter image description here

enter image description here

enter image description here

Actualización 3 : Aquí hay dos capturas simultáneas de paquetes con el "mismo" paquete ICMP resaltado. El de la izquierda fue capturado usando tcpdump en el punto de acceso Ubiquiti UniFi al que está conectado mi MBP, y la derecha fue capturada en el MBP. Puedes ver que el número de secuencia es el mismo. Pero el tiempo de respuesta calculado desde el punto de vista del punto de acceso es relativamente alto, 71 ms, mientras que el MBP vio < 1 ms entre la solicitud y la respuesta.

enter image description here

0 votos

Sinceramente, creo que tu muestreo es demasiado pequeño para llegar a la conclusión de que hay un problema. Además, es importante tener en cuenta que la latencia WiFi puede ser causada por cualquier número de cosas, incluyendo la congestión del tráfico, la interferencia / fuerza de la señal, la calidad de la radio WAP, etc. Para obtener mejores resultados, deberías mirar los valores de RSSI en diferentes redes - de esta manera puedes al menos determinar si el problema existe sólo en tu red o en todas las redes, lo que empezará a reducir el alcance del problema.

0 votos

Estoy de acuerdo: ¿cómo discernir el búfer del WiFi o las interferencias periódicas con un tamaño de muestra tan pequeño?

0 votos

Allan, aprecio tu honestidad. He estado monitoreando la latencia constantemente usando partes de la pila TICK. Aquí están los últimos 7 días donde el naranja es mi MBP: imgur.com/a/SsQ29UD

7voto

Jose Chavez Puntos 645

Sí, efectivamente existe esa medida de ahorro de energía implementada en el Mac. Esto es común en los chipsets WiFi de todas las plataformas y sistemas operativos, y de hecho forma parte del propio estándar WiFi.

El PSM (modo de ahorro de energía) del chipset WiFi adopta muchas formas. El que probablemente estés experimentando se conoce como el modo "connected-idle". En este modo se introduce una pequeña latencia de menos de 100 ms (normalmente 50-100 ms) para el primer paquete recibido después de que el módulo se haya puesto en el modo conectado-espera.

Existen otros modos de ahorro de energía que ahorran más energía, pero, por ejemplo, el modo "connected-sleep" introduce una latencia extra de normalmente 300 ms, que es más de lo que se mide aquí.

Lamentablemente, no parece haber una interfaz oficial de Apple para cambiar los modos de ahorro de energía manualmente, o para desactivar ciertos modos de ahorro de energía. La única solución es utilizar la radio para algo que impida que entre en el modo de suspensión conectado. Eso podría hacerse, por ejemplo, con un ping que se ejecute en segundo plano permanentemente. Obviamente, esto consumirá más energía, lo que podría ser una molestia cuando se ejecuta en la batería.

Sin embargo, a pesar de lo anterior, hay que tener en cuenta que este modo de ahorro de energía no es algo que el usuario final deba o note en absoluto. Recuerda que la latencia sólo afecta al primer paquete recibido después de que el módulo se ponga en modo de suspensión conectado, y que sólo se pone en modo de suspensión conectado después de un período de no uso.

Al utilizar Steam In-Home Streaming tendrás un flujo constante de paquetes hacia/desde tu Mac. Esto significa que el módulo WiFi no va a entrar en el modo de suspensión conectada durante el streaming.

3 votos

Se podría pensar que esto no sería un problema durante la transmisión en casa porque hay un flujo de vídeo constante, pero el tiempo de espera parece ser MUY agresivo - alrededor de 200 milisegundos. Veo picos consistentes con ping -i 0.21 pero no ping -i 0.20 ¡! Me gustaría que alguien pudiera reproducir esto.

0 votos

Creo que es fácil de reproducir en realidad. ¿Estás seguro de que hay huecos de más de 200 ms en el streaming de Steam? Con el streaming en 4K habría supuesto que tendrías paquetes con mucha más frecuencia. Puedes confirmarlo haciendo una captura de paquetes con Wireshark durante el streaming, y luego configurarlo para que calcule el desfase entre paquetes.

1 votos

@CraigYounkins No estás loco. Puedo reproducirlo en un MBP de 2016. No hay picos con ping -i 0.2 picos consistentes con ping -i 0.21 . Esto es muy frustrante cuando se trata de hacer algo en el Mac a través de SSH, ya que se siente como si la máquina se mueve constantemente desde dentro de la misma habitación a algún lugar en el otro lado del Océano Pacífico.

3voto

slm Puntos 118

No creo que su conclusión sea correcta. Yo seguiría diagnosticando el problema sin hacer ninguna suposición sobre cuál es la razón potencial de tu problema de conectividad WiFi intermitente. Podría ser una gran cantidad de razones por lo que el truco con este tipo de ejercicio de solución de problemas es eliminar las posibles fuentes de problemas hasta que pueda construir un caso en cuanto a lo que está causando su problema.

Para empezar ping no es realmente una buena herramienta para diagnosticar problemas como este. Puede ser útil para los problemas de conectividad bruto, pero en este caso yo usaría algo como PingPlotter (gratuito para uso básico) o la herramienta CLI mtr (disponible en brew .

ss1

La imagen de arriba muestra barras rojas en las que mi Macbook Pro tenía problemas intermitentes de conexión con el punto de acceso WiFi. Estos problemas estaban lo suficientemente aislados como para que pudiéramos identificar que eran causados por el punto de acceso y no por la red WiFi del Macbook Pro.

Una vez que haya empezado a controlar las cosas, vea si su problema muestra algún patrón.

Pruebas de velocidad

También puede descubrir problemas intermitentes utilizando algo como speedtest-cli .

$ speedtest
Retrieving speedtest.net configuration...
Testing from Spectrum (65.190.136.112)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Spectrum (Durham, NC) [30.67 km]: 16.144 ms
Testing download speed................................................................................
Download: 402.10 Mbit/s
Testing upload speed................................................................................................
Upload: 21.87 Mbit/s

Hay otra aplicación que es una GUI con el mismo nombre, Prueba de velocidad de la Appstore, que podría ser útil si prefiere tener una forma de GUI de algo como speedtest-cli .

Otra herramienta GUI para analizar su red WiFi que he encontrado útil es NetSpot . Hay opciones comerciales y gratuitas para utilizarlo.

Descubrir la vista

ss2

Herramientas WiFi incorporadas

MacOS también incluye una aplicación básica de escaneo. No es obvio cómo llegar a ella. Para acceder a ella tendrás que mantener pulsada la tecla Opción, y luego haga clic en el icono de red en la barra de menú superior.

Menú WiFi

                                           ss3

Una vez que la ventana de diagnóstico está abierta, puede lanzar herramientas adicionales desde ella. Esta es la parte que la mayoría de la gente parece desconocer de esta aplicación.

Con la ventana de diagnóstico abierta y enfocada, busque en la barra de menús y abra el desplegable "Windows", dentro de él hay varias herramientas para analizar su red.

Diálogo de diagnóstico inalámbrico

ss3

Menú superior de Diagnóstico Inalámbrico

ss4

Desde este menú puedes lanzar una variedad de herramientas como "Logs" para recoger registros detallados o "Performance" para analizar tu conexión WiFi.

Diálogo de rendimiento

ss5

Profundización con Wireshark

Si todavía no ha encontrado la causa de sus problemas con el WiFi, puede solicitar la ayuda de Wireshark . Su instalación es bastante sencilla, puede utilizar brew para instalar el DMG a través de cascos (CLI + GUI) o puede instalar la versión sólo CLI a través del vanilla brew fórmula.

Instalación de DMG a través de cask

$ brew cask install wireshark

Sólo CLI

$ brew install wireshark 

Cuando inicies la GUI, tendrás que decirle de qué interfaz de red capturar los datos. Aquí le estoy diciendo que capture los datos de mi interfaz WiFi, en0 .

ss6

Si hace doble clic en el nombre de la interfaz, Wireshark iniciará inmediatamente una sesión de captura de paquetes. Después de dejar que se ejecute durante un tiempo, con suerte durante uno de los escenarios de fallo que está tratando de solucionar, puede hacer clic en el cuadrado rojo para detener la captura (rojo # 1 en el diagrama de abajo).

A continuación, puede analizar los paquetes capturados en el área roja # 2 de la interfaz de usuario y debe ser capaz de identificar los tipos de paquetes (rojo # 3, por ejemplo, es un ping paquete).

ss7

Referencias

2 votos

Gracias. No conocía algunas de las cosas que muestras. Lamentablemente no he encontrado nada nuevo todavía. Tendré que indagar en los registros de fondo que recogí a través de la herramienta de diagnóstico inalámbrico. También intentaré husmear con un tercer dispositivo y comprobar qué dtrace puede proporcionar. Gracias.

0 votos

¡Excelente y completo post! ¿Estarías dispuesto a editarlo para añadir Wireshark de brew? También podría obtener la verdadera medida de los pings ICMP o medir algo específico :-)

0 votos

@bmike - claro que lo añadiré. Mi enfoque general es trabajar de forma interactiva con los operadores y si/cuando agoten las opciones que les he proporcionado seguiré trabajando con ellos y ampliando mis A'ers. Según mi experiencia, abrumarles con todo por adelantado les desconcierta 8-).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X