绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
IBM新设计,Linux性能有望大幅提升
2021-11-23 16:54:10
来自公众号:OSC开源社区
链接:https://www.oschina.net/news/163474/ibm-linux-cpu-namespace
命名空间(Namespace)是 Linux 内核的一个特性,它对内核资源进行分区,使得一组进程看到一组资源,而另一组进程看到一组不同的资源。该功能的工作原理是为一组资源和进程使用相同的命名空间,但这些命名空间引用不同的资源。资源可能存在于多个空间中。此类资源的示例包括进程 ID、主机名、用户 ID、文件名以及一些与网络访问和进程间通信相关的名称。
IBM 工程师 Pratik Sampat 近日发表了 Linux 内核的 CPU Namespace 接口的早期原型。设计这个命名空间是为了解决当前查看可用 CPU 资源的方法的一致性问题,以及解决因了解系统上的资源访问/位置而可能产生的安全问题。
如今,在容器上运行的应用程序在 cgroups 的帮助下执行它们的 CPU、内存限制与要求。然而,许多应用程序通过 sysfs/procfs 继承或以其他方式获得系统的视图,并根据这些信息分配资源,如线程/进程的数量,内存分配。这可能会导致意外的运行行为,并对性能产生很大影响。
除了一致性问题,目前的处理方式也给多租户系统带来了安全和公平使用的影响,例如:
攻击者可以在知道 CPU 节点拓扑的情况下调度工作负载并选择 CPU,从而使总线被淹没而造成拒绝服务攻击;以及识别 CPU 系统拓扑结构可以帮助识别靠近总线和外围设备(如 GPU)的内核,以便从其他工作负载中获得不适当的延迟优势。
因此,由 IBM 领导的 CPU Namespace 提案追求以下设计:
  • 这个原型补丁集引入了一个新的内核命名空间机制 —— CPU Namespace。

  • CPU Namespace 通过虚拟化逻辑 CPU ID 和创建相同的虚拟 CPU 映射来隔离 CPU 信息。它锁定在 task_struct 上,并且 CPU 转化被设计成扁平的层次结构,这意味着每个虚拟命名空间 CPU 在创建命名空间时都映射到一个物理 CPU,转化速度更快;并且子代不需要向上遍历树来检索转化。

  • 该命名空间允许控制和显示接口都能够感知 CPU 命名空间上下文,这样命名空间内的任务只能通过虚拟 CPU 映射获取视图并因此控制它,以及查看可用的 CPU 资源。

在用 Nginx Web 服务器进行的测试中,内存利用率下降了 92-95%,延迟减少了 64%,每秒的请求和传输等吞吐量没有显著变化。虽然目前的设计仍有存在一些缺陷,但随着 IBM 的持续改进,Linux 的性能有望大幅提升。
--- EOF ---



往期精选

vivo统一告警平台建设与实践

两年滴滴和头条的后端开发经验!字字都是肺腑之言!

中移动离职中层自述:中国移动如何从到崩溃

大数据拯救地球环境的10种方式

聊聊sql优化的15个小技巧

手把手教你|如何编写一个Linux内核模块

MySQL 性能优化的 9 种姿势,面试再也不怕了!

比起35岁程序员,无知犯错的年轻一代是否更应该被原谅?


分享好友

分享这个小栈给你的朋友们,一起进步吧。

专业的官方救援小分队
创建时间:2019-11-07 09:33:49
我是一个官方吐槽小栈我们是技术栈的搬砖IT民工。 我知道你们在使用小栈的过程中会遇到很多问题: 迭代功能太鸡肋? 界面太low? 编辑器难用到爆? ··· 需求尽管提,槽点尽管说,技术救援小分队在线为您灭火,致力于提供专业的解答,提供迅疾的反馈。 悄悄的说,毛线不懂的运营喵、产品狗他们不在,我们一起吐槽!
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 山中老狐狸
    栈主
  • 栈栈
    嘉宾
  • gaokeke123
    嘉宾
  • Ys
    嘉宾

小栈成员

查看更多
  • gyu
  • aabbcc1832611
  • 飘絮絮絮丶
  • h313895741
戳我,来吐槽~