erea

openjdk 이슈 본문

dev/spring boot

openjdk 이슈

erea 2019. 11. 6. 22:12

container 문제

oraclejdk의 1.8기준 211 버젼 이상은 더이상 무료가 아니다
최근 컨테이너 환경으로 개발이 거의 전환되었기에 1.8에서도 도커지원은 191에서 부터 도입되었다.
docker는 cgroup으로 리소스 제한을 하는데 jdk 일부버젼에서는
JVM이 시스템에서 사용 가능한 전체 메모리와 모든 CPU 코어를 인식하여 호스트os자원을 침범하는경우가 발생하였다.
java 10버젼이상은 물론 이러한 문제를 해결하였지만
8u212 버젼이상부터는 백포트로 업데이트가 되어 해결되었다.
결론적으로는 8u212 버젼 이상 즉 컨테이너 환경개발을 위해서는 1.8을 사용하는경우는 최신 lts버젼으로 업데이트 하면 문제가 해결된다.

jdk1.8 vs jdk11 performance

  Cloud balancing Machine reassignment Course scheduling Exam scheduling Nurse rostering. Traveling Tournament
JDK 200c 800c B1 B10 c7 c8 s2 s3 m1 mh1 nl14
Java 8 38,074 34,870 113,490 20,398 4,296 4,840 7,003 5,437 2,385 2,021 nl14
OpenJDK 11 41,753 41,282 166,676 20,363 4,473 5,466 8,157 5,927 2,772 2,536 957
Difference 9.7% 18.4% 46.9% -0.2% 4.1% 12.9% 16.5% 9.0% 16.2% 25.5% 17.9%
Average 16.1%

jdk 11이 g1gc가 평균 16%이상 성능을 Parallel GC가 4.5%이상 성능차이

Download

결론 : g1gc는 이제 표준

1.8 lts
https://github.com/ojdkbuild/ojdkbuild/releases/download/java-1.8.0-openjdk-1.8.0.222-2.b10/java-1.8.0-openjdk-1.8.0.222-2.b10.ojdkbuild.wi
ndows.x86_64.msi
11
https://github.com/ojdkbuild/ojdkbuild/releases/download/java-11-openjdk-11.0.4.11-1/java-11-openjdk-11.0.4.11-1.windows.ojdkbuild.x86_6
4.msi

Reference

https://blog.softwaremill.com/docker-support-in-new-java-8-finally-fd595df0ca54
https://www.optaplanner.org/blog/2019/01/17/HowMuchFasterIsJava11.html

Comments