2017-10-17 179 views
2

從歷史上看,HotSpot在碼頭集裝箱中運行的記錄錯誤,誤判分配的資源(例如RAM)。但是,事情正在緩慢改善。OpenJ9和碼頭集裝箱?

如何OpenJ9與碼頭工人容器和到什麼程度就知道了容器提供的資源(內存,插槽,螺紋等)的

同樣,有人提到的JavaOne 2017年演示過程中對準OpenJ9可以在不同的OpenJ9虛擬機上緩存jit-compilled類。如果虛擬機被限制在不同的容器(或),如果容器化的JVM共享碼頭容量,這個共享緩存是可能的嗎?

回答

2
  1. 容器支持目前正在進行中,對於cgroup意識,請檢查這個PR。這也將導致增加容器支持。
  2. 關於共享類緩存(SCC),這兩種情況都是可能的。有關共享泊塢窗卷的示例,請參見here中的「使用類數據共享功能」。當JVM被限制在不同的容器中而沒有共享卷時,建議使用預先構建的SCC構建Docker容器。你的dockerfile看起來像這樣。

    FROM adoptopenjdk/openjdk9-openj9:x86_64的高山-JDK-9.181

    RUN MKDIR /選擇/ shareclasses & & MKDIR /選擇/應用

    COPY japp.jar /選擇/應用

    CMD [ 「Java」 的, 「-Xshareclasses:cacheDir = /選擇/ shareclasses」, 「罐子」, 「/opt/app/japp.jar」]

然後,您需要構建並運行映像並提交結果容器,並將其作爲基礎映像。

docker build -t japp:latest . docker run japp docker commit container_id japp