热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

1.6.CPU负载均衡

Linux内核倾向于让所有的CPU核负载均衡,这样的策略对于系统层面的资源管理的角度来说是最优的,并且功耗上也有优势,因为低频率运行的CPU与高频运行的CPU功耗不成正比。对于大部


Linux内核倾向于让所有的CPU核负载均衡,这样的策略对于系统层面的资源管理的角度来说是最优的,并且功耗上也有优势,因为低频率运行的CPU与高频运行的CPU功耗不成正比。对于大部分的应用程序来,不同的线程分布在不同的CPU上也能带来降低延迟的效果。但是跨核唤醒相比同核唤醒是有成本的,所以这里对于应用程序是好处还是坏处并不绝对。但是公平是CFS调度器的出发点,所以负载均衡的过程是必须的。

每一次TTWU都是一次负载均衡,因为会选择当前处于空闲状态的CPU作为最后的选核手段。只要CPU的占用率不是百分百,总是可以遇到当前处于空闲状态的CPU的,TTWU就可以完成负载均衡的工作。但是随着CPU占用率的提高,依靠TTWU来完成负载均衡就会效率越来越低,因为越来越不容易遇到CPU为空闲的情况。

此外,在__schedule()函数中也有进行负载均衡。__schedule()需要选择下一个要运行的任务,如果当前rq中没有了,也就是当前CPU马上要进入idle了,这个时候就会触发一次负载均衡,以从其它的繁忙的CPU中拉取任务到当前CPU。

还有一种周期性的负载均衡,在HZ频率的周期性调度入口进行的。这个入口是检测下一次负载均衡的时间窗口到达的,通过触发SCHED_SOFTIRQ软中断来进行的。

__schedule()的newidle均衡和周期性的软中断均衡最终都是通过load_balance函数进行的负载均衡。这个函数输入目标CPU和rq,选择最繁忙的调度组里的CPU,从该CPU上摘任务到目标rq上。

newidle均衡和周期性均衡的目标CPU都很明确,都是当前执行均衡的CPU,所以两者的逻辑很类似,都是遍历所有的调度域,对每个调度域调用load_balance函数。


周期性均衡load_





推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统中下载适用于Intel处理器的64位版本,涵盖了不同Linux发行版对64位架构的不同命名方式,并提供了具体的下载链接和步骤。 ... [详细]
  • Linux设备驱动程序:异步时间操作与调度机制
    本文介绍了Linux内核中的几种异步延迟操作方法,包括内核定时器、tasklet机制和工作队列。这些机制允许在未来的某个时间点执行任务,而无需阻塞当前线程,从而提高系统的响应性和效率。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文将详细介绍如何在Linux操作系统中执行PHP脚本,包括环境配置、命令使用及验证方法。对于需要在Linux环境下开发或部署PHP应用的用户来说,这是一篇非常实用的文章。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • MySQL 高性能实战教程
    本课程深入探讨 MySQL 的架构、性能调优、索引优化、查询优化及高可用性等关键领域。通过实际案例和详细讲解,帮助学员掌握提升 MySQL 数据库性能的方法与技巧。 ... [详细]
  • 在创建新的Android项目时,您可能会遇到aapt错误,提示无法打开libstdc++.so.6共享对象文件。本文将探讨该问题的原因及解决方案。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 免费获取:全面更新的Linux集群视频教程及配套资源
    本资源包含最新的Linux集群视频教程、详细的教学资料、实用的学习课件、完整的源代码及多种软件开发工具。百度网盘链接:https://pan.baidu.com/s/1roYoSM0jHqa3PrCfaaaqUQ,提取码:41py。关注我们的公众号,获取更多更新的技术教程。 ... [详细]
author-avatar
乔父系_377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有