Jvm tarda mucho tiempo en resolver la dirección ip de localhost


Parece que tengo un problema con el rendimiento de "sbt test" después de actualizar a macOS Sierra. En una versión anterior de OS X tomó unos 40-50 segundos para terminar. Los tiempos de macOS Sierra son mucho más altos que eso. La última carrera que hice fue alrededor de 15 minutos. Los tiempos de compilación son aproximadamente 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 tuvo un problema similar en Ubuntu y estaba relacionado con la generación de números aleatorios ralentizando las pruebas - Tiempos de respuesta lentos del servicio: Java SecureRandom & /dev/random

Desafortunadamente, eso no funcionó para mí. Originalmente lo intenté en JDK 8u54 y luego intenté actualizar a JDK 8u102 y eso no ayudó también.

P.d. Estoy ejecutando Macbook Pro Mediados de 2015 2.8 GHz i7, 16 GB de ram, 1 TB SSD.

Author: Community, 2016-09-22

8 answers

Yo tenía 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í.

I resuelto el problema mediante la adición de mi Mac hostname (es decir, Macbook.local, o como se llame su Mac) en el archivo /etc/hosts asignado a la dirección 127.0.0.1 así como a la ::1 de esta manera:

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 aqui: https://thoeni.io/post/macos-sierra-java /

En el post también enlazo a un proyecto de github para ayudar a solucionar el problema y validar la solución.

El problema está relacionado (creo) con cómo funciona la resolución de nombres de host local y cómo la clase java.net.InetAddr está recuperando las direcciones. He verificado con algunos colegas y al parecer no le pasa a todos los que pasaron a Sierra, pero todavía estoy investigando las raíces de esto cambio.

La solución de todos modos fue la misma que antid0te implementó y funcionó inmediatamente.

 229
Author: thoeni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:31

Respuesta correcta: Jvm tarda mucho tiempo en resolver la dirección ip para localhost

Para los perezosos:

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
 24
Author: camikiller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:31

Tengo el mismo problema. Mi aplicación de arranque de primavera tarda 60 segundos en comenzar en Sierra contra 25 segundos en Yosemite.

Mientras depuraba, 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.

 5
Author: Antid0te,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-26 00:00:13

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

Como las personas están viendo problemas después de la actualización, tiene sentido asumir que 10.12 cambió la forma en que 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 se resuelve solo si un servicio está habilitado en Preferencias del sistema > Compartir (alguien con 10.11 podría confirmar esto).

 2
Author: jurajw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-04 23:24:16

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 tarda 95 segundos y el cliente (una aplicación de escritorio basada en Swing) no puede conectarse a él (o al menos tomó mucho tiempo). Creo que es algo alrededor de la comunicación de red, porque una aplicación de consola de prueba simple funciona bien.

 1
Author: Andras Gyetvan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-23 07:51:40

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

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

Puede obtener el myhostname mediante el comando $hostname en cualquier lugar de la terminal.

 0
Author: Sidd Gautama,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-21 03:37:54

La respuesta aceptada me ayudó! Simplemente agregando 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 el ordenador podía ser dirigido con mymac.local

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

Añadiendo mi.mac a/etc / hosts ayudó entonces.

Así que mi adivina cuál es el problema real: Esto solo sucede cuando el nombre de tu computadora contiene algo que no es una letra. Esto se elimina automáticamente por el sistema operativo y luego el nombre de host y la entrada dns no coinciden. (que se puede arreglar mi adición manual)

 0
Author: Arne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-06 06:57:02

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

Pero pueden potencialmente solucionar sus problemas. También puede ver 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 /

 -5
Author: Jennifer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-11 05:35:53