Jvm tarda mucho tiempo en resolver la dirección IP para el host local

Parece que tengo un problema con el rendimiento de la “prueba sbt” después de actualizar a macOS Sierra. En una versión anterior de OS X, tardó entre 40 y 50 segundos en finalizar. Los tiempos de macOS Sierra son mucho más altos que eso. La última vez que lo hice fue alrededor de 15 minutos. Los tiempos de comstackción son casi los mismos que en ‘El Capitán’.

Soy el único de mi equipo que prueba este nuevo macOS, por lo que no puedo decir si solo está sucediendo en mi mac o si es un problema universal.

Mi colega tenía un problema similar en Ubuntu y estaba relacionado con la generación de números aleatorios que ralentizaba las pruebas. Tiempos de respuesta del servicio lento: Java SecureRandom y / dev / random

Desafortunadamente, eso no funcionó para mí. Originalmente probé en JDK 8u54 y luego intenté actualizar a JDK 8u102 y eso tampoco me ayudó.

PD. Estoy ejecutando Macbook Pro Mid-2015 2.8GHz i7, 16GB RAM, 1TB SSD.

Yo tuve el mismo problema. Tomcat pasó de 15 segundos a 6 minutos para inicializar el contexto de spring después de la actualización … deshabilitar csrutils no resolvió el problema para mí.

Resolví el problema agregando el nombre de host de mi Mac (es decir, Macbook.local, o como se llame a tu Mac) en el /etc/hosts mapeado a la dirección 127.0.0.1 así como a ::1 como este:

 127.0.0.1 localhost mbpro.local ::1 localhost mbpro.local 

Si está interesado, puede encontrar algunos detalles sobre el problema y la solución aquí: https://thoeni.io/post/macos-sierra-java/

En la publicación también me enlace a un proyecto github para ayudar a solucionar el problema y validar la solución.

El problema está relacionado (creo) con la forma en que funciona la resolución del nombre del servidor local y cómo la clase java.net.InetAddr está recuperando las direcciones. Lo verifiqué con algunos colegas y aparentemente no le sucede a todos los que ascendieron a Sierra, pero aún estoy investigando las raíces de este cambio.

La solución de todos modos fue la misma que antid0te implementada y trabajó de inmediato.

Respuesta correcta: Jvm tarda mucho tiempo en resolver la dirección IP de localhost

Para la gente perezosa:

 sudo sed -i bak "s^127\.0\.0\.1.*^127.0.0.1 localhost $(hostname)^g" /etc/hosts sudo sed -i bak "s^::1.*^::1 localhost $(hostname)^g" /etc/hosts sudo ifconfig en0 down sudo ifconfig en0 up 

Tengo el mismo problema. Mi aplicación de arranque de spring toma 60 segundos para comenzar en Sierra contra 25 segundos en Yosemite.

Mientras realizaba la depuración, me di cuenta de que el problema proviene de InetAddress.getLocalHost (). Cambié mi archivo de host para agregar mi nombre de host para 127.0.0.1 y :: 1 y ahora la aplicación comienza tan rápido como antes.

Al habilitar, por ejemplo, Preferencias del sistema> Compartir> Inicio de sesión remoto, el nombre de host se asigna automáticamente a una dirección IP.

Como la gente está viendo problemas después de la actualización, tiene sentido suponer que 10.12 cambió cómo se resuelve el nombre de host, es decir, al menos con 10.11 el nombre de host siempre se resuelve, mientras que con 10.12 solo se resuelve si un servicio está habilitado en Preferencias del Sistema> Compartir (alguien con 10.11 podría confirmar esto).

Creo que es un problema general con el nuevo sistema operativo. Tengo un problema similar: tengo una aplicación web que se implementa en tomcat. En El Capitán se inició en 10 segundos, ahora demora 95 segundos y el cliente (una aplicación de escritorio basada en Swing) no puede conectarse (o al menos tardó mucho tiempo). Creo que es algo relacionado con la comunicación de red, porque una aplicación de consola de prueba simple funciona bien.

Fue un problema extraño después de instalar la actualización de Mac Sierra 10.12 (16A323) . En el archivo de hosts con el siguiente ordenó el problema.

 ::1 localhost .local < --- Was already present 127.0.0.1 localhost .local < --- Solved the tomcat loading issue 

Puede obtener el nombre myhost por comando $hostname en cualquier lugar de la terminal.

¡La respuesta aceptada me ayudó! Simplemente añadiendo esto aquí explicando lo que creo que el problema para mí fue:

Mi nombre de host era algo así como “Mi Mac”, que no se pudo resolver. En la configuración, me mostró que la computadora se podía abordar con mymac.local

Pensé que era el espacio y renombré mi mac a “my.mac”, pero incluso esto no ayudó, ya que el dns agregado automáticamente seguía siendo mymac.local

Agregar my.mac a / etc / hosts ayudó entonces.

Así que adivino cuál es el problema real: esto solo ocurre cuando el nombre de su computadora contiene algo que no es una letra. Esto se elimina automáticamente por el sistema operativo y, a continuación, el nombre de host y la entrada dns no coinciden. (que se puede arreglar manualmente añadiéndolo)

Podría ser debido a algunos errores en la forma en que se creó Mac OS Sierra. Intente hacer lo que se denomina reinicio de SMC o reinicio de PRAM para ver si repara su Mac. Estos son reinicios de software y no dañarán sus datos de usuario. Es posible que requieran que simplemente restablezca la hora del sistema después de un reinicio.

Pero pueden solucionar tus problemas. También puede consultar algunos de los consejos mencionados sobre la solución de problemas de Mac OS Sierra aquí: http://elcapitanslow.com/mac-os-sierra-slow-what-to-do/