前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jdk1.8u131 与jdk1.8u222 cpu获取方式的差异

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

作者头像
heidsoft
发布2020-06-02 17:12:20
8150
发布2020-06-02 17:12:20
举报
文章被收录于专栏:云计算与大数据

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版本,造成的线程数不一致,机器负载太高等情况

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云数智圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档