jdk1.8u131 与jdk1.8u222 cpu获取方式的差异

JDK1.8u222 的cpu获取方式

int OSContainer::active_processor_count() {

int quota_count = 0, share_count = 0;

int cpu_count, limit_count;

int result;

cpu_count = limit_count = os::Linux::active_processor_count();

int quota  = cpu_quota();

int period = cpu_period();

int share  = cpu_shares();

if (quota > -1 && period > 0) {

quota_count = ceilf((float)quota / (float)period);

if (PrintContainerInfo) {

tty->print_cr("CPU Quota count based on quota/period: %d", quota_count);

}

}

if (share > -1) {

share_count = ceilf((float)share / (float)PER_CPU_SHARES);

if (PrintContainerInfo) {

tty->print_cr("CPU Share count based on shares: %d", share_count);

}

}

// If both shares and quotas are setup results depend

// on flag PreferContainerQuotaForCPUCount.

// If true, limit CPU count to quota

// If false, use minimum of shares and quotas

if (quota_count !=0 && share_count != 0) {

if (PreferContainerQuotaForCPUCount) {

limit_count = quota_count;

} else {

limit_count = MIN2(quota_count, share_count);

}

} else if (quota_count != 0) {

limit_count = quota_count;

} else if (share_count != 0) {

limit_count = share_count;

}

result = MIN2(cpu_count, limit_count);

if (PrintContainerInfo) {

tty->print_cr("OSContainer::active_processor_count: %d", result);

}

return result;

}

JDK1.8u131 的cpu获取方式

int os::active_processor_count() {

// Linux doesn't yet have a (official) notion of processor sets,

// so just return the number of online processors.

int online_cpus = ::sysconf(_SC_NPROCESSORS_ONLN);

assert(online_cpus > 0 && online_cpus <= processor_count(), "sanity check");

return online_cpus;

}

容器场景需要注意jdk版本,造成的线程数不一致,机器负载太高等情况

本文分享自微信公众号 - 云服务圈(heidcloud)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

C语言基础习题50例(八)36-40

习题36求100之内的素数。实现思路:使用函数实现,并循环遍历依次判断。代码如下:cinclude<stdio.hinclude<math.hintmain(){intisPrime(intn);inti,count0;for(i2;i<101;i){if(isPrime(i)){

两行Python代码将JSON文本转换成标准字典

在获取网页报文时,经常遇到JSON格式的文本。如:\\\html"code":200,"message":"success","data":   "count":47,"pageCount":3,"floorCount":27,"list":     \       "info":           "

MySQL 中的 COUNT 的使用经验

COUNT(_)vsCOUNT(COL):他们在逻辑上是不同的。在MySQL中,COUNT(COL)是不会统计NULL列的。例如下面这张pet表,COUNT(_)与COUNT(owner)是不同的:ForExampleselectfrompet;

TiDB数据库 使用syncer工具同步实时数据

mysqlselectcampaign_id,count(id)fromcreative_outputgroupbycampaign_id;602843rowsinset(4min44.23sec)mysqlselectis_cr_own,count(id)fromcreative_o

Cocos Creator 如何制作拼图游戏,支持无规则形状!

预览效果!(https://oscimg.oschina.net/oscnet/c075e00adf85d09d261e7006e2eeeef3065.gif)  实现思路  假设一张图,按照row行col列分成count(row\col) 份,由count份碎片组成,每个碎片有自己特定的

jdk1.8u131 与jdk1.8u222 cpu获取方式的差异 - HelloWorld