大数跨境

解决多租户性能“噪音”影响,企业级SSD为什么需要PerformaShape?

解决多租户性能“噪音”影响,企业级SSD为什么需要PerformaShape? 慧荣科技
2022-09-30
2


    如今,数据中心等云基础设施面临着云计算、人工智能、大数据等多项新兴技术的挑战,数据中心的各项硬件都必须确保能够大规模地提供稳定性能。在存储上,SSD凭借着高性能、高存储利用率、提高数据中心存储密度以及适应虚拟化和多租户环境等特点,在市场占比逐年加速增长。



    随着多租户应用场景越来越多,多租户之间对资源利用占比要求也越来越高,数据中心也不得不考虑多租户中Noisy租户的行为不一致影响到Good租户的QoS,以及对SSD的整体性以及对数据中心服务器利用率所带来的负面效果。


    为确保多租户之间的资源占用稳定,业界已经拥有多种成熟解决方案。其中一种方案需对资源进行严格的隔离,以保证租户A的资源不会被租户B所占用,租户B的资源也不会被租户A所涉及,但在此方法下也会带来资源碎片化和利用率过低的问题。


    另一种方案则是采用NVMe规范中的加权轮询(weighted round robin)机制来控制租户的优先级,从而决定谁的优先级更高,并且不会被低优先级的租户抢占更多资源。但这种方案也有其限制,首先优先级只有4个等级,并且只会根据提交队列等级去安排而不是IO指令的等级,这也就意味着采用NVMe规范中的加权轮询机制无法针对应用进行定制化。



    以上两种方案都是目前企业级SSD市场中常见的操作,但都有其劣势。为此,慧荣科技在MonTitan™ PCIe Gen5 SSD解决方案平台所采用的SM8366主控芯片上研发了全新的PerformaShape技术,采用双状态令牌桶算法(Dual State Token Bucket Algorithm)所实现的硬件隔离以确保最大的带宽性能,大幅提升使用者定义的特定性能指标(包括:QoS、延迟、随机读取/随机写入和功耗等)。


    在双状态令牌桶算法中,慧荣科技将每个QoS集设定为一个令牌桶(Token Bucket),其中的令牌(Token)可以是任意一个IO命令权限或者一定数量的KiB。请求提供进来时算法会自行判断,当桶中的令牌足以执行时就会消耗掉,否则就会等到桶中的令牌达到该项请求所需的令牌时才执行,至于何时填充到足够数量的令牌与令牌填充速率相关(Token Rate)。整个机制的关键在于令牌阈值(Token Threshhold),当有很多个不同的QoS集时,多租户获取资源的速度取决于优先级等级和令牌填充速度两个参数,而这两个参数都与令牌阈值相关。



    在左图中,当令牌桶中的令牌数量大于预设的阈值时,令牌填充速率就会降低,但是当收到请求处理指令时,就会以较高优先级进行处理。而在右图场景中,令牌数量少于预设阈值时,令牌填充速度会加快,此时收到的请求处理指令则会以较低优先级进行处理。由于整个机制一直处于动态调整中,因此就会使得系统达到尽可能均衡的状态。


    令牌桶算法可以让IO请求变得更为平滑,并且在一定程度上限制了异常状况。双状态令牌桶能够允许更多IO请求以应对更多的突发性,从而优化设备的带宽利用率。但需要注意的是,设备的总带宽是有限的,当拥有多个Noisy Neighbor时,我们需要确保设备不被过度占用。



    为此,PerformaShape在双状态令牌桶之后又接入另一层令牌桶,位于前方的双状态令牌桶用于管理IO请求的优先级,让多租户的资源请求保持一致,而后方的令牌桶用于设备性能的管理,确保设备拥有足够的资源去执行租户的请求。



    在模型演示中,左侧引入了三个随机读取应用模型,并绑定了单独的令牌桶(ID 0-2),每个令牌桶的大小(Token Size)、阈值(Token Cnt Thd)均设置相同,而令牌填充速率(State 0/1 Rate)则根据其具体的资源调用情况分别设置。经过第一层双状态令牌桶算法调整,ID 0和ID 1两个应用模型得到了明显的控制,所有的资源消耗已经变得更加稳定。此时再引入第二层令牌桶,将令牌填充速率设置为设备随机读取性能上限,只要有请求进入就立即执行,将多租户的资源请求集中化,从而保证设备的整体稳定运行状况。


    总结:首先利用第一层双状态令牌桶算法将企业级SSD中Noisy Neighbor的资源请求调整得更为平滑;其次,更为平滑的请求让Noisy Neighbor的不会影响到其他租户,甚至可以将Noisy Neighbor转变为Good Neighbor;最后通过第二层令牌桶算法,充分利用设备的带宽,避免资源浪费的同时输出更稳定的性能。



【声明】内容源于网络
0
0
慧荣科技
高品质高保障
内容 361
粉丝 0
慧荣科技 高品质高保障
总阅读1.1k
粉丝0
内容361