docker環境下Java獲取cpu核心數不許確,其實是宿主機的cpu核心數

docker環境下Java獲取cpu核心數異常

一次查詢線上BUG時,發現JDK獲取cpu核心數不許確,致使程序運行過程當中出現了不符合預期的狀況,由於在線上docker環境的JDK代碼中獲取的cpu核心數其實是docker宿主機的cpu核心數。java

因而,網上搜索了一下,確實是存在這個狀況的,這麼說是由於在後來的jdk版本中,JDK加強了對docker的支持,因此如今的狀況是在有些版本的JDK版本下,獲取CPU核心數不許確,但在另外的一些JDK版本下獲取CPU核心數是準確的。docker

JDK官方博客對這個狀況進行了說明,也說明具體修復的版本。java-se-support-for-docker-cpu-and-memory-limitsoracle

雖然,官方進行了修復,可是想要升級JDK版本號的話,也須要特別注意一下。由於Oracle公司在2019年4月16往後發佈的版本都已經使用了新的協議,新協議代表對我的開發、測試免費,而其餘狀況須要訂閱Oracle服務,也就是商用須要付費。測試

具體的詳細狀況參考:
https://www.jianshu.com/p/040a1315bce5orm

相關文章
相關標籤/搜索