当前位置: 首页 > news >正文

对于超低延迟SSD,IO调度器已经过时了吗?-part2

为了进行这项研究,他们设计了一套严谨的实验方法论,包括在配备了高速Intel Optane P4801X Series NVMe SSD的服务器上执行一系列微观和宏观基准测试,同时监测系统能耗情况。这些测试涵盖了多种工作负载场景,从单一进程提交大量请求至多租户环境下的混合随机读写请求,旨在全面评估不同I/O调度器在实际应用场景中的表现。

图片

在研究中,实验工作负载的设计旨在全面评估I/O调度器对超低延迟存储设备性能和能源效率的影响。实验采用微观基准测试(Microbenchmarks)和宏观基准测试(Macrobenchmarks)两种方法来分析不同场景下的存储系统极限。

微观基准测试主要用于深入分析存储系统的极限性能,通过针对性地模拟单一或一组特定的I/O操作来测量系统的响应时间和吞吐量。例如,在本研究中,研究人员使用了Flexible IO Tester (fio) 工具生成了一系列针对不同I/O调度器的微基准工作负载,包括单租户和多租户场景下的随机读写请求,并且控制队列深度、IO类型和大小等因素,以精确衡量调度器对单个I/O请求处理的影响。

微观基准测试使用了灵活的IO测试工具fio版本3.31,并利用io_uring作为IO接口,该接口因其高效、异步IO能力及广泛应用而被选择。实验涉及四种不同的I/O调度器:none、mq-deadline、kyber和bfq,每个工作负载都针对这四种调度器重复执行并取五次测试结果的平均值以确保准确性。

图片

微观基准测试结果显示,实验通过使用单租户和多租户场景下的读、写以及混合(50%读取和50%写入)工作负载,对比了none、mq-deadline、kyber和bfq这四种Linux内核自带的I/O调度器在IOPS(每秒输入/输出操作次数)方面的表现。none模式表现出最佳的IOPS性能,这意味着采用I/O调度器并未带来预期的性能提升,反而可能降低了系统的吞吐能力。对于中位数延迟和尾部延迟等其他性能指标,研究也得出了相似的趋势。

图片

同时,通过测量完成100万次I/O操作时系统总能耗,结果显示无调度器none同样在能效方面具有优势或与其它调度器相当。在许多情况下,相比bfq调度器,无调度器none模式能够在每百万次I/O操作上节省大约200焦耳的能量消耗。这是因为无调度器可以更快地完成相同的工作负载,而非直接导致硬件执行阶段功耗降低,从而允许系统更早进入空闲状态,并有可能提前切换到更低功率的状态。

此外,研究还考虑了混合请求大小(4 KB和8 KB)、不同的I/O接口及读写比例的变化情况,但无论何种配置下,I/O调度器都没有为性能或能源效率提供任何明显益处。总的来说,基于Intel Optane SSD的实验数据表明,I/O调度器在ULL存储设备上的应用实际上削弱了系统性能并降低了能源效率。尽管如此,操作系统确保应用程序公平访问硬件资源的角色仍然重要,因此未来的研究需要进一步探讨I/O调度器在ULL存储环境中如何实现公平性以及其他技术如闪存基ULL SSD上的价值。

宏观基准测试则更侧重于实际应用环境中的表现。研究人员选择了RocksDB这一广泛使用的键值存储数据库作为真实应用场景,它特别适合模拟超低延迟环境下键值查找操作的优化,因此更能体现I/O调度器对ULL设备性能的影响。利用db_bench工具生成宏观基准测试数据,首先创建了一个接近饱和容量的RocksDB数据库,然后执行readrandom工作负载模拟大量数据库查询请求过程。除了记录数据库负载强度,研究者还通过Linux内核提供的`/proc/diskstats`接口精确测量来自设备层面的I/O请求数量和带宽,并结合Onset HOBO UX120-018 Data Logger监控整个实验过程中系统的能耗,以探究I/O调度器对系统能效的影响。

图片

研究者使用RocksDB键值存储作为宏观基准工具,进一步验证了I/O调度器对超低延迟(ULL)存储设备性能和能耗的影响。具体来说,他们运用db_bench工具生成随机读取键值查找的工作负载,并记录不同I/O深度下的性能表现(以IOPS衡量)以及能量消耗(每百万次IO操作的焦耳数)。结果显示,在各种不同的I/O强度条件下,无论是在读取、写入还是混合(50-50%读写比)场景下,无调度器none模式表现出最优的性能(即最高的IOPS),优于其他三种调度器mq-deadline、kyber和bfq的表现。

总的来说,研究团队通过实验证明,在现今超低延迟存储时代,传统的I/O调度策略不仅没有为性能优化带来帮助,反而增加了延迟并影响到吞吐率及能源效率。这提示我们,对于超低延迟存储设备,应当重新评估I/O调度器的作用,并根据具体应用场景和技术特性来决定是否继续使用它们以改善性能和能效。

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

  • 浅析CXL P2P DMA加速数据传输的原理

  • HDD回暖于2024,与SSD决战于2028

  • 如何解决NAND系统性能问题?

  • 浅析NVMe key per IO加密技术

  • PCIe 6.0生态业内进展分析总结

  • 浅析PCIe 6.0功能更新与实现的挑战

  • 年度总结|存储随笔2023年度最受欢迎文章榜单TOP15

  • NVMe SSD IO压力导致宕机案例解读

  • 过度加大SSD内部并发何尝不是一种伤害

  • NVMe over CXL技术如何加速Host与SSD数据传输?

  • FIO测试参数与linux内核IO栈的关联分析

  • 为什么QLC NAND才是ZNS SSD最大的赢家?

  • SSD在AI发展中的关键作用:从高速缓存到数据湖

  • 浅析不同NAND架构的差异与影响

  • SSD基础架构与NAND IO并发问题探讨

  • 字节跳动ZNS SSD应用案例解析

  • SSD数据在写入NAND之前为何要随机化?

  • 深度剖析:DMA对PCIe数据传输性能的影响

  • NAND Vpass对读干扰和IO性能有什么影响?

  • HDD与QLC SSD深度对比:功耗与存储密度的终极较量

  • NVMe SSD:ZNS与FDP对决,你选谁?

  • 浅析Relaxed Ordering对PCIe系统稳定性的影响

  • 实战篇|浅析MPS对PCIe系统稳定性的影响

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!

相关文章:

对于超低延迟SSD,IO调度器已经过时了吗?-part2

为了进行这项研究,他们设计了一套严谨的实验方法论,包括在配备了高速Intel Optane P4801X Series NVMe SSD的服务器上执行一系列微观和宏观基准测试,同时监测系统能耗情况。这些测试涵盖了多种工作负载场景,从单一进程提交大量请求…...

【C++】list的使用

目录 1 构造1.1 无参构造1.2 构造的list中包含n个值为val的元素1.3 用[first, last)区间中的元素构造list1.4 拷贝构造 2 迭代器的使用2.1 begin end2.2 rbegin rend 3 容量操作3.1 empty size 4 获取元素4.1 front back 5 插入、删除、修改5.1 头插-push_front和尾插-push…...

mybatis的缓存机制

视频教程_免费高速下载|百度网盘-分享无限制 (baidu.com) MyBatis 有一套灵活而强大的缓存机制,主要分为两级缓存:一级缓存(本地缓存)和二级缓存(全局缓存)。 一级缓存(本地缓存)&a…...

ChatGLM3报错:No chat template is defined for this tokenizer

使用官方提供的脚本创建ChatGLM3的DEMO&#xff1a; cd basic_demo python web_demo_gradio.py 出现效果异常问题&#xff1a; conversation [{role: user, content: 你好}, {role: assistant, content: 你好&#xff0c;有什么我可以帮助你的吗&#xff1f;\n\n<|im_end|…...

大数据学习之Flink、搞懂Flink的恢复策略

第一章、Flink的容错机制 第二章、Flink核心组件和工作原理 第三章、Flink的恢复策略 第四章、Flink容错机制的注意事项 第五章、Flink的容错机制与其他框架的容错机制相比较 目录 第三章、Flink的恢复策略 Ⅰ、恢复策略 1. Checkpoint&#xff1a; 2. Savepoint&#…...

C语言易忘操作符全集

目录 位操作符 1.按位与(&) 2.按位或(|) 3.按位异或(^) 4.按位取反(~) 5.左移(<<) 6.右移(>>) 逻辑操作符 1.逻辑与&#xff08;&&&#xff09; 2.逻辑或&#xff08;||) 3.逻辑非&#xff08;&#xff01;&#xff09; 位操作符 1.按位与(…...

网络请求 mvp mvvm get post delete put 请求

get 参数拼接 如下接口 localhost:8080/uav/plotting/page/app?pageNum1&pageSize10&appIde3c59e28-2032-4ddf-a762-7cec96f772a4&orgId65&plottingTypepoint GET("https:/uav/plotting/page/app") Observable<PlotList.DataBean> allPoin…...

研究生开题报告撰写:文言一心VSChatgpt3.5

文言一心 问&#xff1a;我是一名研二学生&#xff0c;请帮我生成一份研究生毕设开题答辩ppt框架。 答&#xff1a;好的&#xff0c;以下是一份研究生毕设开题答辩PPT的框架&#xff0c;供您参考&#xff1a; 幻灯片1&#xff1a;封面页 标题&#xff1a;研究生毕设开题答辩…...

Unity animator动画倒放的方法

在Unity中&#xff0c; 我们有时候不仅需要animator正放的效果&#xff0c;也需要倒放的效果。但我们在实际制作动画的时候可以只制作一个正放的动画&#xff0c;然后通过代码控制倒放。 实现方法其实很简单&#xff0c;只需要把animator动画的speed设置为-1即为倒放&#xff…...

Dubbo源码解析第一期:如何使用Netty4构建RPC

一、背景 早期学习和使用Dubbo的时候&#xff08;那时候Dubbo还没成为Apache顶级项目&#xff09;&#xff0c;写过一些源码解读&#xff0c;但随着Dubbo发生了翻天覆地的变化&#xff0c;那些文章早已过时&#xff0c;所以现在计划针对最新的Apache Dubbo源码来进行“阅读理解…...

unity刷新grid,列表

获取UIGrid 组件&#xff0c;更新列表 listParent.GetComponent().repositionNow true;...

蓝桥杯备赛 day 3 —— 高精度(C/C++,零基础,配图)

目录 &#x1f308;前言&#xff1a; &#x1f4c1; 高精度的概念 &#x1f4c1; 高精度加法和其模板 &#x1f4c1; 高精度减法和其模板 &#x1f4c1; 高精度乘法和其模板 &#x1f4c1; 高精度除法和其模板 &#x1f4c1; 总结 &#x1f308;前言&#xff1a; 这篇文…...

人形机器人创新发展顶层设计与关键技术布局

系列文章目录 前言 随着新一轮科技革命和产业变革的深入推进&#xff0c;我国高度重视人形机器人的创新发展&#xff0c;提出了一系列具有前瞻性和战略性的指导意见。规划指出&#xff0c;到2025年&#xff0c;我国将初步建立人形机器人创新体系&#xff0c;攻克“大脑”、“小…...

C语言-算法-最小生成树

【模板】最小生成树 题目描述 如题&#xff0c;给出一个无向图&#xff0c;求出最小生成树&#xff0c;如果该图不连通&#xff0c;则输出 orz。 输入格式 第一行包含两个整数 N , M N,M N,M&#xff0c;表示该图共有 N N N 个结点和 M M M 条无向边。 接下来 M M M 行…...

android 扫描某个包下的所有类

注意事项 如果在用Android Studio开发过程中&#xff0c;如果新增了类&#xff0c;扫描不到。只能把APP卸载了&#xff0c;才能扫描到。 可能是Instance Run 的影响。 后面研究一下这篇文章&#xff0c;看看能不能解决 Android 遍历Apk下的所有类文件 package com.trs.nmip.…...

远程ssh 不通的原因之一

背景&#xff1a;我都想大喊一声&#xff0c;我上网是通的&#xff0c; ping网址是通的&#xff0c;ping www.baidu.com 是通的&#xff0c; 怎么都远程不了&#xff0c;报超时&#xff1b;嘿&#xff0c; 别人远程就能行。我都想挠头了。 目录 1. 先 ping 自己&#xff0c;…...

wamp集成环境部署

Windows下Apache服务器搭建 第一步&#xff1a;下载Windows下的最新ZIP压缩包 推荐下载网址&#xff1a;http://www.apachelounge.com/download/ 为了让Apache服务器发挥更好的性能&#xff0c;请根据自己的系统选择下载&#xff0c;如果不清楚自己的系统是64位还是32位&am…...

使用antd design pro 及后端nodejs express 结合minio进行文件的上传和下载管理

使用Ant Design Pro前端框架结合Node.js Express后端服务以及MinIO作为对象存储&#xff0c;实现文件上传和下载管理的基本步骤如下&#xff1a; 1. 安装所需依赖 在Node.js Express项目中安装minio客户端库&#xff1a; npm install minio --save 在前端项目&#xff08;假…...

Unity常用的优化技巧集锦

Unity性能优化是面试的时候经常被问道的一些内容&#xff0c;今天给大家分享一些常用的Unity的优化技巧和思路&#xff0c;方便大家遇到问题时候参考与学习。 对啦&#xff01;这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白&#xff0c;也有一些正在从事游…...

c++动态调用dll

在C中动态调用DLL&#xff08;动态链接库&#xff09;可以使用Windows API函数。以下是一个简单的示例&#xff0c;演示如何动态加载和调用DLL中的函数&#xff1a; #include <windows.h> #include <iostream>int main() { // 加载DLL HMODULE hModule LoadLibrar…...

基于AI智能体的渗透测试框架:从自动化到智能协同的范式转变

1. 项目概述&#xff1a;一个面向渗透测试的智能体框架最近在整理自己的工具链时&#xff0c;发现了一个挺有意思的项目&#xff0c;叫GH05TCREW/pentestagent。乍一看这个名字&#xff0c;你可能会觉得这又是一个“缝合怪”式的自动化渗透工具&#xff0c;把Nmap、SQLmap之类的…...

如何免费解锁WeMod专业版:2026年终极完整指南

如何免费解锁WeMod专业版&#xff1a;2026年终极完整指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的高昂费用而烦恼吗&#xf…...

低温预警!固化慢、易开裂……密封胶冬季施工手册

低温预警!固化慢、易开裂……密封胶冬季施工手册 硅酮耐候密封胶主要作用是保障幕墙的气密性、水密性。其出现问题,可能会导致耐候密封失效,从而造成幕墙漏水漏气,影响幕墙的正常使用。耐候密封胶由于考虑到现场施工,几乎都是单组分硅酮密封胶产品。进入冬季,气候变化明…...

3分钟掌握猫抓扩展:轻松捕获网页视频的终极秘籍

3分钟掌握猫抓扩展&#xff1a;轻松捕获网页视频的终极秘籍 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过这样的情况&#xff1…...

OpenSpire:开源贡献者协作平台的设计理念与实战指南

1. 项目概述&#xff1a;一个面向开源贡献者的协作平台最近在和一些刚接触开源的朋友交流时&#xff0c;发现一个挺普遍的现象&#xff1a;很多人对参与开源项目充满热情&#xff0c;但第一步“如何找到合适的项目并上手”就卡住了。GitHub上项目浩如烟海&#xff0c;一个新手面…...

5分钟免费获取:开源鼠标连点器MouseClick完整使用指南

5分钟免费获取&#xff1a;开源鼠标连点器MouseClick完整使用指南 【免费下载链接】MouseClick &#x1f5b1;️ MouseClick &#x1f5b1;️ 是一款功能强大的鼠标连点器和管理工具&#xff0c;采用 QT Widget 开发 &#xff0c;具备跨平台兼容性 。软件界面美观 &#xff0c;…...

如何3步获取百度网盘真实下载地址实现满速下载

如何3步获取百度网盘真实下载地址实现满速下载 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾被百度网盘的非会员下载速度困扰&#xff1f;当下载重要的工作文件、学…...

为AI编程助手构建安全防线:Cursor自定义规则实战指南

1. 项目概述&#xff1a;为AI编程助手装上“安全护栏” 如果你和我一样&#xff0c;深度使用Cursor这类AI编程助手&#xff0c;那你一定体验过它带来的效率革命。它能帮你生成代码、重构函数、甚至解释复杂的逻辑&#xff0c;就像一个不知疲倦的编程伙伴。但硬币总有另一面——…...

告别时间混乱:一份超全的Hive日期函数使用手册与常见错误排查

告别时间混乱&#xff1a;一份超全的Hive日期函数使用手册与常见错误排查 在数据开发领域&#xff0c;时间数据处理一直是高频且易错的环节。无论是日志分析、用户行为追踪还是财务报表生成&#xff0c;准确的时间计算都是确保数据质量的基础。Hive作为大数据生态中广泛使用的数…...

【Canvas动画录制实战】从WebM到MP4:MediaRecorder全流程解析与避坑指南

1. Canvas动画录制基础与准备工作 如果你正在开发一个数据可视化项目或者HTML5小游戏&#xff0c;可能会遇到需要将动态内容保存为视频的需求。Canvas动画录制就是解决这个问题的关键技术方案。相比传统的录屏软件&#xff0c;直接通过代码录制能获得更清晰的画质&#xff0c;还…...