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


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

一次查詢線上BUG時,發現JDK獲取cpu核心數不准確,導致程序運行過程中出現了不符合預期的情況,因為在線上docker環境的JDK代碼中獲取的cpu核心數實際上是docker宿主機的cpu核心數。

於是,網上搜索了一下,確實是存在這個情況的,這么說是因為在后來的jdk版本中,JDK增強了對docker的支持,所以現在的情況是在有些版本的JDK版本下,獲取CPU核心數不准確,但在另外的一些JDK版本下獲取CPU核心數是准確的。

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

雖然,官方進行了修復,但是想要升級JDK版本號的話,也需要特別注意一下。因為Oracle公司在2019年4月16日后發布的版本都已經使用了新的協議,新協議表明對個人開發、測試免費,而其他情況需要訂閱Oracle服務,也就是商用需要付費。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM