返回首页  设为首页  加入收藏  今天是:
网站首页电脑主板电脑cpu电脑内存电脑硬盘电脑显卡电脑电源显示器电脑配件电脑维修
相关文章
 存储基础——磁盘 IO 为什么…
 预算3000元左右5款“12+256G…
 小米MIUI用户数破亿 好看又好…
 美商务部副部长:将对三星、…
 终于把显卡装上了可是干点儿…
 为何我的电脑有两个显卡 是用…
 一般正常使用的显卡能用多久…
 显卡后后面那个按钮是干嘛的…
 关于游戏本选购的浅谈硬件都…
 性能爆表、耗电量高、价格惊…
 电源关注剧增!30系显卡配电…
 4070显卡需要多少w电源 4070…
 40系显卡先出什么型号 4060显…
 最新显卡天梯图2022 和3090t…
 手机存储空间告急成本三百元…
 移动硬盘文件格式变为RAW 导…
 读速7000MBS!2TB M2固态硬盘…
 移动硬盘格式化?想要恢复硬…
 有什么实用恢复软件?数据恢…
 智能投影仪质量问题频出消费…
 为何有的高速公路过了收费期…
 谁为烧了的南桥买单?
 318路公交早高峰时段难等 公…
 长沙年检费用大概多少钱年检…
 企业如何做好渠道营销
 房地产渠道营销如何开发这些…
 智能获客如何做到全渠道营销…
 大数据时代怎么做全渠道的营…
 如何做特定人群渠道的营销推…
 电脑显示屏十大排名 (电脑最…
 2022年程序员编程写代码推荐…
 主流24英寸显示器排行榜818选…
 144Hz显示器
 2020年直面144hz电竞显示器如…
 国产x86兆芯CPU旗舰笔记本发…
 骁龙8 Gen1相当于苹果A几 相…
 鲁大师2022半年报电脑排行:…
 电脑显示器该怎么选?2021十…
 何须双屏 海兰神韵W30超宽屏…
 2022年电脑显示器十大品牌排…
 6个细节让你的电脑显示器购买…
 【推仔说新闻】戴尔发布首款…
 电脑小白该怎么看懂笔记本CP…
 自主CPU会从什么路线突破?
 香蕉派推出新款单板电脑BPI-…
 解决电脑CPU占用率高问题
 赶快更新!Nvidia发布热修复…
 2023年选主板不迷路:各家主…
 主板芯片卡槽图解
 微星公布 B550I ITX 主板:H…
专题栏目
网络
您现在的位置: 电脑评测网 >> 电脑内存 >> 正文
高级搜索
存储基础——磁盘 IO 为什么总叫你对齐?
作者:佚名 文章来源:本站原创 点击数: 更新时间:2023/3/16 16:15:47 | 【字体:

  kiyomi歌词音译资深存储人员为啥总叫你注意 IO 对齐的?机械磁盘 IO 为什么要 512 对齐呢,SSD 盘为啥要 4K 对齐?不对齐又会如何?

  机械盘的 IO 要扇区对齐(绝大部分的扇区是 512 字节大小),磁盘的读写最小单元就是扇区;

  这个秘密就在于前面提到的,机械盘和 SSD 盘的 IO 都有最小单元的概念。机械盘是以扇区为最小的空间单位,SSD 盘则是 4k 的 page 作为 IO 的最小单元。所以当在机械盘上读 1 个字节的数据,本质上是至少读一个扇区,写 1 个字节则更复杂,先要把这个扇区读出来,然后在内存里 update,最后又把这个扇区写回到磁盘。

  你可能又有疑问了:为啥机械盘和 SSD 盘都要按照一个单元来管理呢,为啥不 1 字节 1 字节管理呢?如果这样的话,业务读写不就方便了嘛。

  第一个是存储的开销:数据存储到磁盘上还有 SSD 盘上是会有校验的(比如 ECC 校验),如果每个字节都对应一个校验,存 1T 的数据有 1T 的校验?那这个存储开销无比的大。那如果是现在 512 字节对应一个 1 字节的校验,则开销完全可控;

  第二个是性能的开销:物理硬件是跟真实世界的设计匹配的,对于机械磁盘的写是利用磁化介质来存储数据,如果磁盘上是1 个字节,甚至 1 个 bit 来独立存储,那磁盘磁头的次数将无比庞大,性能也将无比的下降(每一次都是写数据+校验)。SSD 的写则更复杂,因为 SSD 由于自身的存储特点,是无法覆盖写的,每次写都是写新位置,旧的位置则是作为垃圾等待后台 GC ,粒度太小则会导致擦写的次数无比的多,性能和寿命都将不可接受;

  所以说,在综合因素的权衡下,硬件对于空间管理会划分固定单元,并对 IO 也提出单元对齐的要求。至于磁盘固定单元为 512 字节,SSD 的 IO 单元为 4K 则是经过综合的科学测试和验证的一个数值而已。

  在京东上买东西,你买 1 块钱的货,京东要收费 7 块的运费。对你来讲是不是划不来?因为对京东来讲,如果线 块钱的东西也划不来。所以京东要你买的东西满 79 元才给你免运费。

  如果说真的有个愣头青,每次都单独买 1 块钱的货,买它 100 次,划得来来不?

  当然划不来,运费都要 700 了,加上货本身,总费用 800 元(哈哈,可能京东被你折腾的更惨)。

  所以,你再思考下为什么磁盘本身一定有固定大小的存储单元,通俗话叫做:量大从优,专业一点叫做:减少边际效应。

  是不是很简单呀。偏移和长度就是我们常说的 ,,对齐通常就是既要保证偏移对齐也要保证长度对齐。

  下面以机械盘扇区对齐和非对齐的举例。为了简化,以下例子讨论的的对齐都是偏移和长度双重对齐的。

  从这 512 字节的内存中,copy 出用户要用的 1 个字节,给到用户;

  开销:读放大。如果是读 512 字节的数据,但是偏移不对齐,那么可能导致 2 次 IO。

  磁头摆到这 512 个字节数据所在 2 个扇区位置,对齐到扇区开始的偏移;

  从这 1024 字节的内存中,copy 出用户要用的 512 个字节,给到用户;

  开销:读放大。虽然读的是 1 个扇区的数据,但是偏移却没对齐,所以必须要读 2 个扇区,也放大了一倍的流量。

  写是比较复杂的,用户现在手握 1 个字节的数据,想要写到磁盘,但是磁盘的 IO 单元是扇区,所以本质上是读改写的方式。步骤如下:

  开销:一次磁盘读 IO,内存合并,最后再一次磁盘写 IO。明明是写,却必须要先读,IO 即放大了流量,又放大了次数

  所以你看出来了吗,非对齐的 IO 多了很多步骤。存在 IO 流量和次数的放大。这样会极度拖累性能。

  本来只需要一次 IO 就能完成的操作,放大了一次,那么性能就至少下降一倍。就这么简单。

  开销:所以,我们看到由于不对齐,读的时候导致多读了一个扇区,写的时候导致多写了 1 个扇区。性能自然是极差的。

  机械盘来说,随机 iops 就是几百的样子,带宽也就几百兆。一次寻道都是 10ms 级别的。所以磁盘读写数据的代价远比你想象中的大。

  这个有多慢?cpu 执行指令都是纳秒和微秒级别的,一次 IO 性能和 cpu 或者内存的操作相差十万百千里。所以,但凡你能省 1 次 IO 都是非常大的性能提升。

  而对于 SSD 来说,如果你 IO 不对齐,很有可能峰值能跑 5 万 iops 的盘只能跑 2 万甚至更低。大家一定要有个意识:IO 能节省就节省,多一次 IO 性能可能慢 1 倍。

  绝大部分的程序员都是基于文件系统之上操作磁盘。文件系统则会使用 buffer cache 自动帮用户对齐 IO ,然后再下发磁盘。一旦你想要深入优化 IO 的性能,IO 对齐一定是第一道要考量的坎。

  格式化的时候,一定要注意对齐。格式化文件系统的时候,一定要注意对齐的偏移,不要故意搞成非对齐的偏移,不然一旦文件系统格式化的时候都不对齐,后面谁也救不了,除非你重新格式化文件系统。

  举个例子,本来文件系统从偏移磁盘 0 这个位置格式化,你偏不,你偏要从 3 字节偏移的位置开始格式化。那后面的所有的貌似对齐的 IO 偏移都将是不对齐的,性能也自然是下降的。

  非 IO 对齐的请求会导致内部 IO 流量和次数的放到,从而性能下降(SSD 则会因为放到而导致擦写次数过多,更会影响寿命);

  程序员一般很少要主动对齐,因为文件系统帮你 hold 住了一层。但是如果程序员自己不注意,还是会踩坑。比如明明是 SSD 盘,你偏要每次发送 512 字节的 IO 请求,那性能肯定惨不忍睹;

电脑内存录入:admin    责任编辑:admin 
  • 上一个电脑内存:

  • 下一个电脑内存: 没有了
  •  
     栏目文章
    普通电脑内存 存储基础——磁盘 IO 为什么总叫你对齐? (03-16)
    普通电脑内存 预算3000元左右5款“12+256GB”大内存手机小米… (03-16)
    普通电脑内存 小米MIUI用户数破亿 好看又好用的活系统再创里… (03-16)
    普通电脑内存 美商务部副部长:将对三星、SK海力士在华晶圆… (03-16)
    普通电脑内存 小米曾学忠详解 RAMDISK 游戏试玩模式 (03-15)
    普通电脑内存 Windows 10的“杀手锏”微软DirectX 12到底带… (03-15)
    普通电脑内存 内存2023行情(内存行情) (03-15)
    普通电脑内存 内存概念有那些上市公司?(2022820) (03-15)
    普通电脑内存 千元宝藏手机线大内存高颜值无可挑剔 (03-15)
    普通电脑内存 内存颗粒最新资讯-快科技--科技改变未来 (03-15)
    普通电脑内存 内存正在经历史无前例的大溃败? (03-15)
    普通电脑内存 魅族20系列现身跑分平台内存容量曝光 (03-14)
    普通电脑内存 Redmi Note 12能玩原神吗 可以插内存卡吗? (03-14)
    普通电脑内存 BeagleBoardorg®推出的BeaglePlay®为… (03-13)
    普通电脑内存 基于OMAPL138+FPGA核心板多核软件开发组件MC… (03-13)
    普通电脑内存 内存对电脑有何作用带你了解内存条 (03-13)
    普通电脑内存 Tiny11 Builder打造极致精简版Win11:2GB内存… (03-13)
    普通电脑内存 2022款iPad Pro是什么处理器 运行内存是多少? (03-13)
    普通电脑内存 iPhone14 Pro是8G运存吗 Pro是6G还是8G内存? (03-13)
    普通电脑内存 Steam Deck能插内存卡吗 上的游戏要买吗? (03-13)