페이스북의 GraalVM 도입기
(blogs.oracle.com)- Facebook이 Spark를 가속하고 메모리&CPU 사용량을 줄이기 위해 GraalVM을 도입
- 페북은 Java를 빅데이터,백엔드,모바일 등 몇몇 주요 분야에서 사용중
- GraalVM으로 교체전에는 Oracle JDK 와 Open JDK Java 8/11 을 사용했음
왜 GraalVM을 선택?
- 성능이 주요 고려사항이었음. 전환하는 것 만으로 성능이 향상.
- GraalVM 이 Java로 작성되었기 때문에 유지 보수및 성능개선이 쉬워서, 장기적인 투자상대로 적합했음
- 휼륭한 커뮤니티를 가지고 있음
- OpenJDK를 GrallVM으로 대체하는건 매우 쉬웠고, GraalVM의 최적화 때문에 별도 튜닝없이 바로 성능이 향상됨
- 빅데이터 처리용 Spark를 GraalVM 위에서 실행해서 성능 향상
ㅤ→ 커뮤니티 버전은 1.1배, 엔터프라이즈 버전은 1.42배 향상
ㅤ→ 어떤 벤치마크에서는 4.84배까지 빨라졌음
ㅤ→ CPU 부하도 10% 줄어듬
ㅤ→ Polymorphic inlining, Partial escape analysis, Advanced speculative optimizations
ㅤ→ 단순히 GraalVM 으로 교체하는 것 만으로 Spark Workload 가 10% ~ 42% 속도가 개선
- 트위터도 GraalVM으로 교체하고 P99 Latency가 19.99% 까지 개선
르네상스 벤치마크는 GraalVM의 공식적인 벤치이고 개발의 기준입니다. "어떤 벤치마크"라고 이야기하는게 맞지 않을 것 같아요.