programing

Jvm이 localhost의 ip-address를 확인하는 데 시간이 오래 걸림

newsource 2022. 11. 26. 08:43

Jvm이 localhost의 ip-address를 확인하는 데 시간이 오래 걸림

MacOS Sierra로 업그레이드 후 sbt test(로컬호스트명/IP주소 검색 포함) 성능에 문제가 있는 것 같습니다.이전 버전의 OS X에서는 완료까지 약 40~50초가 소요되었습니다. macOS Sierra 시간은 이보다 훨씬 더 높습니다.내가 마지막으로 한 건 15분 정도였어.컴파일 시간은 'El Capitan'과 거의 같다.

이 새로운 macOS를 사용해 본 사람은 저밖에 없기 때문에 이것이 mac에서만 발생하는 것인지 보편적인 문제인지 알 수 없습니다.

제 동료도 Ubuntu에서 비슷한 문제가 있었습니다.그것은 랜덤 번호 생성으로 인해 테스트가 느려졌습니다.서비스 응답 속도가 느립니다.Times : Java SecureRandom & / dev / random

아쉽게도 그건 통하지 않았어요.원래는 JDK 8u54에서 그것을 시도하고 나서 JDK 8u102로 업데이트하려고 했지만 역시 도움이 되지 않았습니다.

P.S. Macbook Pro Mid-2015 2.8을 실행하고 있습니다.GHz i7, 16GB RAM, 1TB SSD

저도 같은 문제가 있었어요.Tomcat은 업그레이드 후 스프링 컨텍스트를 초기화하기 위해 15초에서 6분으로 단축되었습니다.CSRutils를 무효화해도 문제가 해결되지 않았습니다.

Mac 호스트 이름(예: Macbook.local 또는 Mac이 무엇으로 불리는지)을 추가하여 문제를 해결했습니다./etc/hosts 127.0.0.1 및 「」를 합니다.::1음음음같 뭇매하다

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

이 문제와 솔루션에 대한 자세한 내용은 https://thoeni.io/post/macos-sierra-java/를 참조하십시오.

투고에서는 문제의 트러블 슈팅과 솔루션 검증에 도움이 되는 github 프로젝트에 링크합니다.

이 문제는 localhost 이름 해결의 작동 방식과 java.net의 작동 방식과 관련이 있다고 생각합니다.InetAddr 클래스가 주소를 취득하고 있습니다.저는 소수의 동료들과 함께 확인했고 시에라로 업그레이드한 모든 사람들에게 그런 일이 일어나지 않는 것 같습니다만, 저는 아직도 이 변화의 근원을 조사하고 있습니다.

어쨌든 해결책은 안티0te가 구현되고 즉시 작동한 것과 동일했다.

정답: Jvm이 localhost의 ip-address를 확인하는 데 시간이 오래 걸립니다.

게으른 사람들을 위해:

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

저도 같은 문제가 있어요.Sierra에서는 60초, Yosemite에서는 25초 걸립니다.

디버깅을.InetAddress.getLocalHost()127.0.0.1 ★★★★★★★★★★★★★★★★★」:: 1이제 어플리케이션이 예전처럼 빠르게 시작됩니다.

이네이블화예:[시스템 설정(System Preferences)]> [공유(Sharing)]> [리모트로그인(Remote Login)]에 의해, 호스트명에 IP 주소가 자동적으로 할당됩니다.

업그레이드 후 문제가 발생할 경우 10.12가 호스트 이름 해결 방법을 변경했다고 가정하는 것이 타당합니다.즉, 적어도 10.11에서는 호스트 이름이 항상 해결되지만 10.12에서는 서비스가 활성화 되어 있는 경우에만 해결됩니다(10.11을 사용하는 사용자도 이 사실을 확인할 수 있습니다).

에에 it to to to to to to to to to to to to to to to로 를 설치한 후 하였습니다.Mac Sierra 10.12 (16A323)아래 호스트 파일에서 문제를 정리했습니다.

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

명령어로 myhostname을 가져올 수 있습니다.$hostname아무데나 갈 수 있습니다.

새로운 OS의 일반적인 문제라고 생각합니다.비슷한 문제가 있습니다.Tomcat에 배포된 웹 응용 프로그램이 있습니다.El Capitan에서는 10초 만에 시작되어 95초가 걸리고 클라이언트(Swing 기반 데스크톱 앱)는 접속할 수 없습니다(또는 적어도 많은 시간이 소요되었습니다).간단한 테스트 콘솔 앱이 잘 작동하기 때문에 네트워크 통신에 관한 것이라고 생각합니다.

받아들여진 답변이 도움이 되었습니다!여기에 덧붙이자면, 제가 생각하는 문제는 다음과 같습니다.

내 호스트명은 "My Mac"과 같은 것으로 해결할 수 없었습니다.설정에 mymac.local로 컴퓨터의 주소를 지정할 수 있는 것이 표시되었습니다.

공간인 줄 알고 mac 이름을 my.mac으로 바꿨는데, 이마저도 자동으로 추가된 DNS가 mymac.local이기 때문에 도움이 되지 않았습니다.

my.mac을 /etc/hosts에 추가하면 도움이 됩니다.

그래서 나는 실제 문제가 무엇인지 추측한다.이 문제는 컴퓨터 이름에 문자가 아닌 문자가 포함된 경우에만 발생합니다.이것은 OS에 의해 자동으로 삭제되고 호스트 이름과 DNS 엔트리가 일치하지 않습니다.(수동으로 추가하면 수정 가능)

Mac에서도 같은 문제가 발생했습니다.

프라이머리 호스트명과 Bonjour 호스트명을 영숫자만을 포함하도록 변경하면 문제가 해결되었습니다.이 아이디어는 비슷한 문제에 직면했을 때 어딘가에서 조언을 읽은 동료로부터 나왔다(어디서인지 기억이 나지 않는다.

가이드에서 영감을 얻어 다음 단계를 따릅니다.

먼저 프라이머리 호스트명 변경

sudo scutil --set HostName <new host name>

예:

sudo scutil --set HostName eggsandwich

다음으로 Bonjour hostname을 변경합니다(완전성을 위해 이 단계가 없으면 시도하지 않았기 때문에 필요하지 않을 수 있습니다).

sudo scutil --set LocalHostName <new host name>

예:

sudo scutil --set LocalHostName eggsandwich

문제가 있었던 Java 프로세스를 재시작합니다.더 이상 중단되지 않기를 바랍니다.

한편, 이것은, Terminal 의 새로운 탭이, 자신의 프리퍼런스에 관계없이 같은 디렉토리에서 bash 를 기동하지 않는, 또 다른 문제도 해결했습니다.왜 그런 일이 일어났는지 설명할 수는 없지만, 매우 기쁩니다.

언급URL : https://stackoverflow.com/questions/39636792/jvm-takes-a-long-time-to-resolve-ip-address-for-localhost