技术开发 频道

Linux调度器bug快速修复

  【IT168 技术】Linux调度器bug可以导致多线程加载严重的性能下降,本文教你如何自己动手解决

Linux调度器bug快速修复

  根据本月初EuroSys在伦敦的16个会议上发表的演讲和论文,,Linux内核调度程序缺陷导致一个多核系统无法正确进行多线程加载。

  如果你正在运行的应用程序受到影响,你又不愿在内核排队等待修复,可以使用第三方脚本提供的补丁。

  题为“Linux调度器:十年的核心浪费”的论文,是由六个英国哥伦比亚大学的研究人员和其他四个机构共同写的。它描述了四个内核调度程序的bug,导致即使可运行线程正在等待被派往另一个核心CPU核仍保持闲置。

  “导致性能退化在13 %- 24%的范围内为典型的Linux的工作负载,”研究人员说,“在某些情况下,可达到138×。”

Linux调度器bug快速修复

  bug并不会影响桌面用户。如上在黑客新闻所讨论的线程,问题涉及复杂多处理器系统上的Linux调度器。在核失败在某些情况下,调度器使用算法来平衡负载。例如,当一个之前休眠的线程休眠被一个重载核唤醒,而其他核不在使用。

  本文描述了一个用R语言写的测试应用程序,暗示当在多核的Linux环境中进行数学和统计时可能出现问题。

  这些bug并不总是崩溃或挂起时出现,而是通过降低性能,所以他们并不总是明显的,研究人员说。

  研究人员建议的补丁至今仍然没有被提交给Linux内核维护人员。但这些在Ubuntu上运行大量多核立即可以应用的补丁脚本可以在GitHub上下载。脚本获取构建内核所需的依赖关系,应用所需的补丁,并给出可选的安装内核并且构建的.deb包也可在其他地方使用。

    原文链接:http://www.infoworld.com/article/3060180/linux/linux-scheduler-bug-got-you-down-heres-a-fast-fix.html

0
相关文章