首页 > 其他分享 >ZNSwap: un-Block your Swap——论文泛读

ZNSwap: un-Block your Swap——论文泛读

时间:2024-03-26 14:31:34浏览次数:22  
标签:泛读 写入 交换 un GC Swap ZNSwap SSD 页面

ATC 2022 Paper 论文阅读笔记整理

问题

随着SSD的速度越来越快,SSD上的Swap成为有效回收内存和提高系统效率的关键系统组件[3,14,18]。但一个关键限制是随着SSD利用率的增加,系统性能会下降。

由于SSD是异地更新,通过闪存转换层(FTL)将主机侧随机写入转换为介质所需的顺序写入,并维护每个块的逻辑到物理映射,并通过设备端垃圾回收(GC)来释放擦除块并回收新写入的容量。该接口将硬件管理与主机端软件解耦,因此使用SSD的软件和SSD的管理逻辑都无法看到彼此的活动。在交换的情况下,这种去耦阻碍了操作系统优化设备上数据放置的能力,以及设备利用交换机制的独特特性及其对设备的使用的能力。从而导致GC引起的写放大(WA),降低Swap性能。

在ZNS中,重建了主机对存储设备的管理和控制[25]。引入了区域的概念,区域不允许就地更新,并要求按顺序写入。要回收区域中的空间,需要对其进行重置,然后才可以发出新的写入操作。它能够实现主机侧存储控制,而不必处理低级别的介质管理,如损耗均衡或纠错。

本文方法

本文提出了ZNSwap,针对分区命名空间(ZNS)SSD优化的交换子系统。

  • 利用ZNS对驱动器上的数据管理的控制,引入主机端ZNGC。但主机侧GC将在主机中产生不可接受的空间开销,需要为TB级设备中的每个4KiB块维护反向映射。ZNSwap将反向映射信息到与交换出的页面内容一起写入的逻辑块元数据中,避免了主机中的这些开销。

  • 细粒度空间管理。操作系统使用TRIM提示块SSD解除分配特定的LBA,从而降低SSD侧GC的负载,但TRIM的开销很大,导致带宽显著下降。ZNGC利用了对操作系统内部页面有效性结构的直接访问,而没有与TRIM相关的昂贵开销。

  • 动态ZNGC优化。动态调整存储在交换设备中的交换页面数量,提高了以读为主和混合读写工作负载的性能。操作系统在交换设备中保留未修改的交换入内存页面的副本,以避免这些页面的换出惩罚。此类页面可占用的磁盘空间量由操作系统静态限制(在Linux中为50%,不可配置)。但这个静态阈值并不适用于所有工作负载。

  • 灵活的数据放置和空间回收策略。ZNSwap允许定制磁盘空间管理策略,以根据特定系统的交换需求定制GC逻辑。例如,强制将寿命相似的数据主机代管到同一区域,或者专用一个单独的区域来处理特定租户的交换来实现更好的性能隔离。

  • 准确的多租户计算。ZNSwap与cgroup机制集成,将GC开销显式地归因于不同的租户,从而提高了它们之间的性能隔离。

使用标准的Linux交换基准和两个生产键值存储来评估ZNSwap。与传统SSD上的Linux交换相比,ZNSwap显示出显著的性能优势,例如不同内存访问模式的稳定吞吐量,以及在实际使用场景下memcached键值存储中,99%延迟低10倍,吞吐量高5倍。

实验

实验环境:服务器具有2×Intel Xeon Silver 4216 CPU、512 GiB内存(2×256 GiB DDR4 2933 Hz)、Ubuntu 20.04、Linux 5.12.0。1TB生产级Western Digital ZN540 ZNS SSD、相同硬件平台和介质的等效1TB传统块SSD(7%OP)。SSD的最大顺序读取和写入带宽分别为3.2GiB/秒和1GiB/秒。随机4KiB读取和写入分别达到1.4GiB/秒和1GiB/秒。对于ZNS SSD,每个区域的可写容量为1077MiB,并且格式化后每个LBA可以存储64B的元数据。

数据集:vm-scalability[22]、pmbench[58]、memcached-ETC[23,29,45]、redis-YCSB[16,27]

实验对比:带宽、写放大、尾延迟

实验参数:交换设备利用率、不同数据集

总结

针对ZNS SSD上的交换子系统设计,现有方法垃圾回收开销高、性能差。本文提出ZNSwap,引入了与交换逻辑共同设计的主机端ZNGC。(1)将每个4K块的反向映射信息、与交换出的页面内容一起写入的逻辑块元数据中,避免了反向映射开销。(2)细粒度空间管理。利用了对操作系统内部页面有效性结构的直接访问,没有与TRIM相关的昂贵开销。(3)动态ZNGC优化。动态调整存储在交换设备中的交换页面数量,提高了以读为主和混合读写工作负载的性能。(4)灵活的数据放置和空间回收策略。允许定制磁盘空间管理策略,以根据特定系统的交换需求定制GC逻辑。(5)准确的多租户计算。ZNSwap与cgroup机制集成,将GC开销显式地归因于不同的租户,从而提高了它们之间的性能隔离。

标签:泛读,写入,交换,un,GC,Swap,ZNSwap,SSD,页面
From: https://blog.csdn.net/qq_36159989/article/details/137008922

相关文章

  • 保姆级教程:教你UniMRCP对接华为云ASR(Linux版)
    本文分享自华为云社区《unimrcp对接华为云ASR(Linux版)》,作者:ASR-beginer。本篇文章提供了unimrcp对接华为云ASR的保姆级教程,根据第一到四章,可从头逐步编译+集成基于华为云ASR的unimrcp系统(授人以渔)。同时,本文第五章(直接给条鱼)提供了作者修改好的源码,直接一键编译即可。一、安装u......
  • FUNBOX CTF靶机渗透测试
    靶机信息地址页面名称:Funbox:CTF发布日期:2020年9月5日作者:0815R2d2系列:趣盒描述土拨鼠之日:Boot2Root!最初的脚步有点流畅,但确实不难。进入Funbox:CTF后,需要查找、阅读并理解(2个且易于查找的)提示。聪明并结合…提示:Nikto扫描“区分大小写”,您至......
  • 使用Github托管Unity项目
    ​准备工作在本机生成ssh密钥ssh-keygen-trsa-C"你的邮箱地址"点击回车后会出现生成的密钥路径,我们直接打开密钥复制下来。github官网添加我们的本机密钥进入Github官网,点击设置,选择SSHandGPGkeys点击newSSHkey,将我们刚才在本机生成的ssh密钥放入key中,并起......
  • conda 安装 (Rocky9 和 Ubuntu20.04)
    Conda官方网址:https://www.anaconda.com/Rocky9环境dnfupdate-ydnfinstallvimwgetlsofgccgcc-c++tarbzip2firewalldopenssl-develmlocatemakechronydocker-ybashAnaconda3-2024.02-1-Linux-x86_64.sh-p/opt/anaconda3vim/etc/profile文件末添加下面一行......
  • 基于SpringBoot+Vue+uniapp微信小程序的乡村政务服务系统的详细设计和实现(源码+lw+部
    文章目录前言项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • Windows 10无法登录Xbox及其附属产品(包括但不限于Game Bar,Minecraft Launcher)
     1. 问题描述:打开Xbox(如下图) 或GameBar(如下图)  后,单击登录,会弹出一个窗口,印有自己账户的头像,下方一行小字“欢迎回来,$昵称$”,如下图所示:  单击唯一的绿色按钮“现在就开始吧”,该窗口消失,马上又回到点击登录前的界面。循环尝试结果都不变。2.解决方法第一步......
  • maven打包程序包com.sun.*** 包不存在
    需要在pom文件中加入<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><showWarnings>true</showWarnings>......
  • Unresolved plugin: 'org.apache.maven.plugins:maven-compiler-plugin:3.7.0'
    1.找到maven安装目录,查看本地仓库,按路径查看jar包状态2.不正常删掉此jar包文件夹3.reloadmaven依赖,让它自己再从中央仓库下一遍 出现此报错的原因:1.你写的插件版本不存在访问Maven中央仓库(https://search.maven.org/)并搜索 maven-jar-plugin,查看可用的版本。确保你使用......
  • ENSP Demo3 VLAN Trunk & Hybrid
    syssysnSW1vlanbatch1020100200intg0/0/1portlink-typetrunkporttrunkallow-passvlan1020100200intg0/0/2portlink-typehybridporthybriduntaggedvlan10100porthybridpvidvlan10intg0/0/3portlink-typehybridporthybridunta......
  • wsl2 ubuntu子系统安装显卡驱动与cuda
    wsl2安装参考文档:http://t.csdnimg.cn/ClwJ9演示安装ubuntu22列出可安装的子系统命令:wsl--list--onlinePSC:\Users\linyu>wsl--list--online以下是可安装的有效分发的列表。使用'wsl.exe--install<Distro>'安装。NAMEF......