如何加速SSD进入稳态
由于SSD的实际写入带宽受到业务类型和内部状态的双重影响,因此业界一般会标出在典型工况下的写入带宽。对于用户来说,在系统设计时,4kB随机写入的稳态性能通常被认为是SSD的写入带宽的下限。业界也有很多方法来测试该性能。为了使得测试结果有效,需要在测试前对待测SSD进行清空(Purge)和预处理(Precondition),使得它进入到稳态。
是否可以直接全盘随机写入进行预处理?
在执行4kB随机写入测试之前,通常的预处理包括对于SSD全盘的一次顺序写入和几次随机写入。既然最终的测试是随机性能,为什么在清空后一定需要先进行一次顺序写入再进行随机写入而不是直接通过若干次随机写入使得SSD进入稳态呢?这是由于SSD内部的工作原理决定的:采用上述方法可以最快速度使得SSD进入到随机写的稳态。实际上,SSD在清空后,内部的Flash物理空间被全面释放出来,成为空闲资源。为了使SSD再次进入稳态,需要尽可能向SSD内部写入数据,占据这些空闲的Flash块。只有SSD内部的空闲块基本用完,才能触发它内部的垃圾回收(GC)机制并尽快使得性能下降到稳态。
对于一个容量为1000GB的企业级SSD,存在约15%的超额配置(Over Provisioning),内部的Flash物理空间总共约为1150GB。如果对全盘顺序写入一次,占用的物理空间就是1000GB。而如果采用4kB随机写入的方式,对全盘随机写入1000GB的数据,由于两次写入的位置可能存在重叠,因此虽然占用的物理空间仍然是1000GB,但是这些空间对应的逻辑地址要小于1000GB。那么两者之间的差异到底是多少呢?
为了写入1000GB的数据,采用4kB的写入方式,待写入的空间包含n=1000GB/4kB=2.6×108个4kB的地址。而总计需要写入n次4kB数据。设随机变量Mi=1代表地址i没被写入任何数据这样的事件,对于这n个地址中任意一个,由于所有写入都是独立并且均匀写入到所有地址空间,因此n次随机写入全没有命中指定地址的概率。
上面的式子利用了 并假设n足够大,其中e=2.718是自然对数的底数。为了计算所有这样的没有任何写入命中地址空间的比例,借助大数定理
因此,全盘随机写入一次导致从来没有写入数据的地址所占据全盘的比例为e-1,也就是说全盘随机写入一次仅仅相当于写入了1-e-1=63%的地址范围,除此之外37%的地址范围是不包含有效数据仍然处于空盘状态。因此,采用这种方法,即便写入3次,也仍然有5%的地址范围未被覆盖,这相当于凭空增加了5%的超额配置。因此采用全盘随机写入的方法进行预处理的效率是很低的。
有些磁盘性能测试工具可以选择在随机写入的时候指定是否允许写入重叠的地址范围。例如fio在随机写入的时候会记录哪些地址曾经写过,它会避免已经写入的地址重复写入,从而避免了上述填充的效率问题。为了记录已经写入的地址范围,它使用了系统中的一段内存。如果系统内存不足且不需要这个功能,可以通过norandommap开关把这个功能关闭。
该如何加速SSD进入稳态?
而采用先进行一次全盘顺序写,再进行数次随机写的方案,则可以加速进入稳态。这是因为先前的1000GB写入把所有的地址范围全部占用了,在此基础上的随机写入则会占用多余的超额配置空间,使得SSD尽快启动垃圾回收并进入到稳态。此外,写入同样的数据量,顺序写入要比随机写入快不少,可以提高预处理的效率。
在这个过程中,我们甚至可以观察到SSD的写入带宽从顺序写的较高性能,先跌入到一个谷底而后再逐渐恢复到随机写的稳态性能。这个带宽的谷底又是怎么回事?这仅仅是由于SSD垃圾回收采用了惰性策略导致不及时进行垃圾回收所致吗?
实际上,这个性能的低谷才是SSD写入性能的下界。这个谷底的产生是因为写压力从顺序转换成随机,导致Flash物理块的淘汰策略发生切换所致。由于之前的压力为纯顺序写入,在SSD内部物理数据块的淘汰采用了论资排辈的先写入先淘汰的方法,而一旦切换到随机写入,原来这些“年龄”偏大的物理块不再被继续选择出来淘汰,而新的写入方法尚未建立起稳定的待回收的数据块供应,因此这个时候所有等待回收的物理块中有效数据全面偏多,造成性能的谷底。
小结
这就好比在2000年的时候,通信行业非常火爆,院校里通信和电子类专业非常热门。但是等这些专业学生毕业的时候,通信行业的需求已经有饱和的趋势,而计算机则成了新的热门,再往后是金融。如果处在选择专业的高中毕业生只关注当下的行业需求,缺少对未来的分析和判断,那么往往选择的专业在就业的时候就成为了明日黄花,只有有了预判能力,才能把握住时代的需求。对于一个有预判能力的SSD,就应该根据用户业务类型和内部的数据块中有效内容的分布规律,提前和合理安排垃圾回收,才能避免这个写入性能的谷底,保持一个接近全盘随机写的性能下限。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
统一操作系统UOS的五大杀手锏
国产化的浪潮下,统信软件的统一操作系统 UOS 近来相当活跃,和生态硬件、软件的适配工作也是进展迅速,隔三差五就有新的好消息传来。 不过由于种种原因,很多人对于国产软硬件,尤其是这个统一操作系统 UOS 还不是很了解,甚至存在一些误解。 今天,统信软件就官方梳理了统一操作系统 UOS 的五个最突出特性,称之为五大杀手锏。 首先需要说明的是,统一操作系统 UOS 基于 Deepin 深度操作系统,相信很多人对它都有所耳闻,因此可以说 UOS 是站在巨人肩膀之上成长起来的。 Deepin 拥有很好的社区基因,在全球几百款 Linux 国际发行版排行中,长期居于国际前前十名,受欢迎程度甚至可以比肩大名鼎鼎的 Ubuntu 等,并拥有全球 33 个国家、105 个镜像站点。 在此基础之上,UOS 团队集结了国内众多操作系统研发人才,专注 Linux 操作系统的研发工作,更胜一筹,而且更专注于商用市场和特殊行业。 1、更强的桌面环境 Deepin 和 UOS 的桌面环境均采用Deepin DDE,完全适合中国人的操作习惯,侧边栏的控制中心简单无脑到女朋友再也不会问鼠标滚轮速度在哪里能调,只需鼠标...
- 下一篇
【云栖号案例 | 教育与科研机构】“校园安全+教务管理+家校互动+教育大数据”创造安全和谐的家校生态环境
云栖号案例库:【点击查看更多上云案例】不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 我们是上海市的一家教育科技有限责任公司,主营业务为线上教育,旨在开创“物联网+校园安全+教务管理+学习资源+家校互动+教育大数据”业务模式,创造更加安全和谐的家校生态环境。我们公司需要参照国外总公司系统开发一套国内业务系统。 客户痛点 我们作为国内新注册的公司,对未来业务规模难以预估,资金预算较少。 我们国内公司尚无技术运维人员,具体细节需要同美国公司运维人员沟通,由于时差关系,信息同步滞后。 我们公司的系统数据暂不考虑数据库存储用户业务数据,但对系统稳定性、安全性要求很高。 解决方案 解决方案架构图 计算集群: 1.通过EIP节省带宽流量费用,使成本支出进一步降低。2.通过服务器集群+SLB的方案,将网站服务器、数据商店服务器、系统服务器、备份服务器以及API接口调用服务器独立部署。3.通过负载均衡弹性伸缩模式,提高系统可用性,优化底层架构,控制成本支出,并随时根据业务需求调整基础架构模式。 数据库:选择MongoDB三节点副本集,由系统自动搭建三节点...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池