儘管java應用程序服務器將擴展獨特的JVM以運行多個(微)服務,但是dockerized java微服務架構將爲每個dockerized微服務運行JVM。 考慮到20個以上的java微服務和有限數量的主機,似乎每個主機上的JVM佔用的資源量是巨大的。如何高效dockerized java微服務
有沒有一種有效的方法來解決這個問題?是否有可能調整每個JVM以限制資源消耗? 目標是限制在java微服務體系結構中使用docker的開銷。
儘管java應用程序服務器將擴展獨特的JVM以運行多個(微)服務,但是dockerized java微服務架構將爲每個dockerized微服務運行JVM。 考慮到20個以上的java微服務和有限數量的主機,似乎每個主機上的JVM佔用的資源量是巨大的。如何高效dockerized java微服務
有沒有一種有效的方法來解決這個問題?是否有可能調整每個JVM以限制資源消耗? 目標是限制在java微服務體系結構中使用docker的開銷。
運行的每個Docker和JVM副本都使用內存。通常在一個節點上有多個JVM會使用共享內存,但這對docker來說不是一個選項。
你可以做的是減少每個JVM的最大堆大小。但是,我將允許每個Docker映像至少1 GB作爲開銷,併爲每個JVM添加堆大小。雖然聽起來像很多記憶,但這些日子並不會花費太多。
假設您爲每個JVM提供2 GB堆併爲docker + JVM添加1 GB,則您正在尋找需要64 GB服務器來運行20個JVM/docker。
感謝您的回答。我在哪裏可以找到JVM堆棧的一些「隨便」值?實際上,對於我的μS來說,500MB似乎已經足夠了(甚至是負責)。 (我用jvisualv檢查它)。所以我對你推薦的價值印象深刻。 – DouglasAdams
@DouglasAdams我們的一些客戶擁有100TB虛擬內存大小的JVM。如果每個JVM有0.5 GB的堆,你會發現你需要更多的頭腦。 –
@DouglasAdams JVM堆棧的值是什麼意思?你的意思是什麼是默認值?如果你有少量的線程,它不應該需要調整。 –
你沒有問過任何問題。你有什麼問題? –