TMO,一种在服务器上节省 RAM 的 Facebook 机制

Facebook工程师透露, 通过报告,引进技术 TMO (透明内存卸载)去年,其中 允许显着节省服务器上的 RAM 通过移动不需要在 NVMe SSD 等更便宜的驱动器上运行的辅助数据。

Facebook 估计 TMO 在每台服务器上节省了 20% 到 32% 的 RAM。 该解决方案设计用于应用程序在隔离容器中运行的基础架构。 TMO 的内核端组件 它们已经包含在 Linux 内核中。

在 Linux 内核端,操作 技术的 由 PSI 子系统提供 (压力失速信息),自 4.20 版起提供。

PSI 已在各种内存不足驱动程序中使用 并允许分析各种资源(CPU、内存、I/O)的等待时间信息。 借助 PSI,用户空间处理器可以更准确地评估系统负载和减速模式,从而在异常对性能产生明显影响之前对其进行检测。

在用户空间中,Senpai 组件运行 TMO,它根据从 PSI 接收到的数据,通过 cgroup2 动态调整应用程序容器的内存限制。

Senpai分析资源短缺的迹象 通过 PSI,评估应用程序对缓慢内存访问的敏感性和 尝试确定所需的最小内存大小 对于容器,其中作业所需的数据保留在 RAM 中,而相关数据一直位于文件缓存中或当前未直接使用,将被强制输出到交换分区。

透明内存卸载 (TMO) 是 Meta 针对异构数据中心环境的解决方案。 它引入了一种新的 Linux 内核机制,可以实时测量由于 CPU、内存和 I/O 资源短缺而导致的工作损失。 在此信息的指导下,在没有任何应用程序先验知识的情况下,TMO 会自动调整内存量以卸载到异构设备,例如压缩内存或 SSD。 它根据设备的性能特征和应用程序对较慢内存访问的敏感性来执行此操作。

因此, TMO 的本质是在内存消耗方面保持进程“严格节食”,强制将未使用的内存页面移动到交换分区,删除它不会显着影响性能(例如,仅在初始化期间使用代码的页面和缓存在磁盘上的一次性数据)。 与响应低内存将信息刷新到交换分区不同,TMO 基于预测性预测刷新数据。

在 5 分钟内没有访问内存页面被用作偏好的标准之一。 这些页面称为冷页面,平均而言,它们占应用程序内存的 35% 左右(根据应用程序的类型,有 19% 到 65% 的变化)。

该首选项考虑了与匿名内存页面相关的活动(由应用程序分配的内存)和用于文件缓存的内存(由内核分配)。 在某些应用程序中,匿名内存是主要消耗,但在其他应用程序中,文件缓存也非常重要。

为避免在将内存刷新到缓存时出现不平衡,TMO 使用一种新的分页算法,按比例刷新匿名页面和与文件缓存关联的页面。

将不经常使用的页面推送到较慢的内存不会对性能产生巨大影响,但可以显着降低硬件成本。 数据被发送到 SSD 或 RAM 中的压缩交换空间。 以存储一字节数据为代价,使用 NVMe SSD 比在 RAM 上使用压缩便宜 10 倍。

最后,如果你有兴趣了解更多,可以咨询详情 在下面的链接.


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   埃利安

    这可以在具有普通应用程序的普通计算机中使用吗?