首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 内核将弃用并删除 SLOB 内存分配器

出品|开源中国

早在 Linux 2.6.23 版本,SLUB 内存分配器成为 Linux 内核的默认值。仅当 CONFIG_SLAB 标志被禁用时,内核才会回退到使用 SLOB 分配器。而据外媒 Phoronix报道,Linux 内核开发人员正在考虑弃用并最终删除 SLOB 内存分配器。

SLOB (simple list of blocks)分配器是 Linux 内核中三个可用的内存分配器之一。另外两个是 SLAB (slab allocator) 和 SLUB(the unqueued slab allocator)。

SLOB 分配器被设计为仅需要很少的内存来实现和管理,常用于嵌入式系统等小型系统。

来自 SUSE 的 Vlastimil Babka 发送了弃用并删除 SLOB 的内核邮件,邮件中提到 SLOB、SLAB  三个内存分配器通同时维护,导致内核开发人员的负担太大。此外,SLOB 只有部分功能与分配器子集兼容,这也导致在 SLOB 功能上的开发要花费更多精力,间接阻塞了 API 的改进。

但最大的问题还是 SLOB 的适用范围太小,它最初的设计主要是面向小内存设备的分配器,通过将所有对象放在一起处理来争取最小的内存占用。这也导致其 CPU 性能成本很大(锁定、缺乏 percpu 缓存、搜索可用空间等......),而且很容易被外部碎片严重影响,导致性能问题。现在内存已经不值钱了,硬件设备最低 RAM 都得来个 128 MB,SLOB 早已经过了发力的年代。

Vlastimil 在邮件中提到的是放弃 SLOB 和 SLAB 两个内存分配器,只留下 SLUB 。到目前为止,其他上游开发人员都赞成弃用和移除 SLOB,而移除 SLAB 可能需要更多时间。在接下来的几个版本, SLOB 将会被标记为损坏或声明弃用,最终被从内核源码树中剥离。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221110A02EOI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券