docker环境下Java获取cpu核心数不准确,实际上是宿主机的cpu核心数

摘要:
docker环境下Java获取cpu核心数异常一次查询线上BUG时,发现JDK获取cpu核心数不准确,导致程序运行过程中出现了不符合预期的情况,因为在线上docker环境的JDK代码中获取的cpu核心数实际上是docker宿主机的cpu核心数。于是,网上搜索了一下,确实是存在这个情况的,这么说是因为在后来的jdk版本中,JDK增强了对docker的支持,所以现在的情况是在有些版本的JDK版本下,获取CPU核心数不准确,但在另外的一些JDK版本下获取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

免责声明:文章转载自《docker环境下Java获取cpu核心数不准确,实际上是宿主机的cpu核心数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Docker 容器内存限制Android下音视频对讲演示程序(声学回音消除、噪音抑制、语音活动检测、自动增益控制、自适应抖动缓冲)(2021年11月10日更新)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jenkins集成sonarQube实现代码质量检查

1.sonarQube的简介 SonarQube是一款自动化代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查。 其工作流程如下: 如图SonarQube由以下4个组件组成: 1.SonarQube Server: WebServer:供开发人员,管理人员浏览高质量的快照并配置Sona...

Deepin -Android Studio-Genymotion 之旅

Deepin -Android Studio-Genymotion 之旅 暑假无聊中在deepin系统下配置好了android的开发环境,并使用了比较好的一款模拟器–Genymotion;下面是我配置的非常详细的过程。 第一步 :安装deepin系统 为什么我会使用deepin系统呢,首先deepin的图形界面做的非常美观,其次从我装了7到8种linux...

Docker 部署Confluence15.2

一、数据库准备 数据库版本:5.7 这里数据库并没有采用docker镜像方式,而是选择已有数据库。至于数据库安装这里不再说明。 注:我这里安装confluence时,需要在下面配置数据库信息时,在数据库地址链接后面加上?sessionVariables=tx_isolation='READ-COMMITTED',否则会报错 1) 创建数据库并授权 cre...

国产化 飞腾芯片 银河麒麟 docker部署netcore

1、背景介绍 此文档是基于arm64架构服务器编写的,写此文档时使用的是银河麒麟系统。银河麒麟系统自带docker,所有我们不需要再安装docker,而且银河麒麟系统中的docker已经设置了开机自启,我们不需要设置开机自启。如果之后安装单机版的电脑没有docker,则需要我们在脚本中提供安装docker的命令,并设置docker开机自启。 2、单机版do...

Java 9 揭秘(19. 平台和JVM日志)

Tips做一个终身学习的人。 在这章中,主要介绍以下内容: 新的平台日志(logging)API JVM日志的命令行选项 JDK 9已经对平台类(JDK类)和JVM组件的日志系统进行了大整。 有一个新的API可以指定所选择的日志框架作为从平台类记录消息的日志后端。 还有一个新的命令行选项,可以从所有JVM组件访问消息。 在本章中,详细介绍两个记录工具...

Docker Swarm 服务编排之命令

一、简介   Docker有个编排工具docker-compose,可以将组成某个应该的多个docker容器编排在一起,同时管理。同样在Swarm集群中,可以使用docker stack 将一组相关联的服务进行编排管理。   Docker stack 也是一个yaml文件,和一份docker-compose.yml文件差不多,指令也基本一致。但是与comp...