开启raid卡缓存 Write back 对IO性能的影响


背景

公司买了一台服务器. 想进行一下升级
但是因为管理员担心数据丢失, 使用了write through + (raid6 + hotspare)
的终极保护模式.
但是发现磁盘的IO比较差, 测试结果也不是非常好.
基于此进行了一下raid卡的设置, 希望能够提高一下性能.

调优背景

计划打开raid卡缓存前后进行一下简要的性能测试:
工具为: fio
还有数据库测试软件: sysbench

对比结果

IO块大小 是否开启RAID缓存 顺序写入 顺序读取 随机写入 随机读取
128KB 10100 5098 910 266
128KB 272 11500 117 1103
16KB 33200 28300 1902 363
16KB 591 22900 137 959
8KB 36500 33700 1863 390
8KB 837 37800 173 946
1KB 39500 36300 837 358
1KB 700 33900 115 884

数据库部分的差异

是否开启超线程 事务效率(每秒) 查询效率(每秒) 最小响应时间(ms) 平均响应时间 99%的响应时间
直写 32核心/32线程 244.78 5011.98 14.43 40.82 97.55
写回 32核心/32线程 497.56 10012.29 14.19 20.09 27.17

图形展示

  • FIO

  • sysbench


部分原始数据

  • FIO 写回
write128k
write: IOPS=10.1k, BW=1258MiB/s (1319MB/s)(4096MiB/3257msec)
read128k
read: IOPS=5098, BW=637MiB/s (668MB/s)(4096MiB/6427msec)
randwrite128k
write: IOPS=910, BW=114MiB/s (119MB/s)(3420MiB/30065msec)
randread128k
read: IOPS=266, BW=33.4MiB/s (34.0MB/s)(1001MiB/30006msec)
write16k
write: IOPS=33.2k, BW=519MiB/s (544MB/s)(4096MiB/7896msec)
read16k
read: IOPS=28.3k, BW=442MiB/s (464MB/s)(4096MiB/9265msec)
randwrite16k
write: IOPS=1902, BW=29.7MiB/s (31.2MB/s)(893MiB/30026msec)
randread16k
read: IOPS=363, BW=5814KiB/s (5953kB/s)(170MiB/30003msec)
write8k
write: IOPS=36.5k, BW=285MiB/s (299MB/s)(4096MiB/14369msec)
read8k
read: IOPS=33.7k, BW=264MiB/s (276MB/s)(4096MiB/15542msec)
randwrite8k
write: IOPS=1863, BW=14.6MiB/s (15.3MB/s)(437MiB/30001msec)
randread8k
read: IOPS=390, BW=3128KiB/s (3203kB/s)(91.7MiB/30006msec)
write1k
write: IOPS=39.5k, BW=38.5MiB/s (40.4MB/s)(1156MiB/30001msec)
read1k
read: IOPS=36.3k, BW=35.5MiB/s (37.2MB/s)(1064MiB/30001msec)
randwrite1k
write: IOPS=837, BW=838KiB/s (858kB/s)(24.5MiB/30013msec)
randread1k
read: IOPS=358, BW=358KiB/s (367kB/s)(10.5MiB/30002msec)

  • FIO 直写
write128k
write: IOPS=272, BW=34.1MiB/s (35.8MB/s)(1023MiB/30002msec)
read128k
read: IOPS=11.5k, BW=1442MiB/s (1512MB/s)(4096MiB/2841msec)
randwrite128k
write: IOPS=117, BW=14.7MiB/s (15.4MB/s)(441MiB/30008msec)
randread128k
read: IOPS=1103, BW=138MiB/s (145MB/s)(4096MiB/29697msec)
write16k
write: IOPS=591, BW=9456KiB/s (9683kB/s)(277MiB/30005msec)
read16k
read: IOPS=22.9k, BW=358MiB/s (375MB/s)(4096MiB/11442msec)
randwrite16k
write: IOPS=137, BW=2202KiB/s (2255kB/s)(64.5MiB/30013msec)
randread16k
read: IOPS=959, BW=14.0MiB/s (15.7MB/s)(450MiB/30011msec)
write8k
write: IOPS=837, BW=6700KiB/s (6861kB/s)(196MiB/30001msec)
read8k
read: IOPS=37.8k, BW=295MiB/s (310MB/s)(4096MiB/13862msec)
randwrite8k
write: IOPS=143, BW=1144KiB/s (1172kB/s)(33.5MiB/30001msec)
randread8k
read: IOPS=946, BW=7569KiB/s (7750kB/s)(222MiB/30001msec)
write1k
write: IOPS=700, BW=700KiB/s (717kB/s)(20.5MiB/30003msec)
read1k
read: IOPS=33.9k, BW=33.1MiB/s (34.8MB/s)(995MiB/30001msec)
randwrite1k
write: IOPS=115, BW=116KiB/s (118kB/s)(3471KiB/30005msec)
randread1k
read: IOPS=884, BW=885KiB/s (906kB/s)(25.9MiB/30005msec)

sysbench的结果

  • 写回
[ 10s ] thds: 10 tps: 493.60 qps: 9952.25 (r/w/o: 6974.03/1975.31/1002.90) lat (ms,99%): 34.33 err/s: 3.70 reconn/s: 0.00
[ 20s ] thds: 10 tps: 451.21 qps: 9067.76 (r/w/o: 6349.91/1804.43/913.42) lat (ms,99%): 26.68 err/s: 2.80 reconn/s: 0.00
[ 30s ] thds: 10 tps: 547.70 qps: 11024.03 (r/w/o: 7723.12/2189.41/1111.50) lat (ms,99%): 25.28 err/s: 3.70 reconn/s: 0.00
SQL statistics:
queries performed:
read: 210532
write: 59728
other: 30291
total: 300551
transactions: 14936 (497.56 per sec.)
queries: 300551 (10012.29 per sec.)
ignored errors: 102 (3.40 per sec.)
reconnects: 0 (0.00 per sec.) General statistics:
total time: 30.0166s
total number of events: 14936 Latency (ms):
min: 14.19
avg: 20.09
max: 1041.03
99th percentile: 27.17
sum: 300053.39 Threads fairness:
events (avg/stddev): 1493.6000/82.27
execution time (avg/stddev): 30.0053/0.01

  • 直写
[ 10s ] thds: 10 tps: 243.35 qps: 4991.08 (r/w/o: 3504.25/972.02/514.80) lat (ms,99%): 82.96 err/s: 6.10 reconn/s: 0.00
[ 20s ] thds: 10 tps: 288.50 qps: 5892.27 (r/w/o: 4134.45/1152.11/605.71) lat (ms,99%): 68.05 err/s: 6.90 reconn/s: 0.00
[ 30s ] thds: 10 tps: 202.30 qps: 4163.91 (r/w/o: 2923.90/814.10/425.90) lat (ms,99%): 893.56 err/s: 6.50 reconn/s: 0.00
SQL statistics:
queries performed:
read: 105658
write: 29400
other: 15475
total: 150533
transactions: 7352 (244.78 per sec.)
queries: 150533 (5011.98 per sec.)
ignored errors: 195 (6.49 per sec.)
reconnects: 0 (0.00 per sec.) General statistics:
total time: 30.0331s
total number of events: 7352 Latency (ms):
min: 14.43
avg: 40.82
max: 2938.61
99th percentile: 97.55
sum: 300120.33 Threads fairness:
events (avg/stddev): 735.2000/39.34
execution time (avg/stddev): 30.0120/0.01

是否开启raid卡缓存的影响的更多相关文章

  1. 【转】MegaSAS RAID卡 BBU Learn Cycle周期的影响

    http://ju.outofmemory.cn/entry/140 背景 最近遇到有些带MegaSAS RAID卡的服务器,在业务高峰时突然IO负载飚升得很高,IO性能急剧下降,查了日志及各种设置最 ...

  2. RAID卡 BBU Learn Cycle周期的影响

    背景 最近遇到有些带MegaSAS RAID卡的服务器,在业务高峰时突然IO负载飚升得很高,IO性能急剧下降,查了日志及各种设置最后才发现是RAID卡的Cache写策略由 WriteBack变成Wri ...

  3. RAID卡的缓存与磁盘自带的缓存的关系

    RAID卡是否有(启用)缓存对“随机读写”性能有巨大的影响.中高端的RAID卡都有缓存(价格也高). 那么RAID卡的缓存与磁盘自带的缓存是如何设置的? 戴尔服务器的perc H710 RAID卡有5 ...

  4. Linux RAID卡优化

    200 ? "200px" : this.width)!important;} --> 介绍 我们的生产服务器经常会做raid存储,但是单单做了raid就能保证性能高效和数据 ...

  5. raid卡MegaCli工具使用说明

    一.DELL&IBMMegaCli -AdpAllInfo -aALL —看配置项 #检查raid级别MegaCli -LDInfo -Lall -aALL | grep 'RAID Leve ...

  6. RAID卡技术简析

    经过一段时间的折腾,工作的事终于解决了,新工作一上来的第一件事就要熟悉RAID卡存储机制,先简单了解下RAID卡吧. 提到RAID卡就不得不提什么是RAID,RAID是英文Redundant Arra ...

  7. Dell服务器Raid卡电池策略调整

    DELL服务器的Riad卡都有可充电池的特性,这块可充电电池,在不使用时,也会有微弱的放电现象,当它的电量放电到低到一定程度时,Raid卡控制器就会对电池进行一次“放电”,将剩余的电量放掉,然后再进行 ...

  8. LSI系列芯片Raid卡配置方法、管理手册

    说明 本手册适用于LSI芯片Raid卡 包括但不限于Inspur 2008/2108 Raid卡.LSI 9240/9260/9261/ 9271 等Raid卡. 不同型号的Raid卡在某些功能上的支 ...

  9. 【Java/Android性能优 6】Android 图片SD卡缓存 使用简单 支持预取 支持多种缓存算法 支持不同网络类型 支持序列化

    本文转自:http://www.trinea.cn/android/android-imagesdcardcache/ 本文主要介绍一个支持图片自动预取.支持多种缓存算法.支持数据保存和恢复的图片Sd ...

  10. DELL磁盘阵列控制卡(RAID卡)MegaCli常用管理命令汇总

    新版本的 MegaCli-1.01.24-0.i386.rpm (下载地址:http://www.lsi.com/downloads/Public/MegaRAID Common Files/8.02 ...

随机推荐

  1. 创建service后,kubernetes会发生什么

    本文分享自华为云社区<当创建一个service后,kubernetes会发生什么?>,作者:可以交个朋友. 一.Service介绍 1.1 Kubernetes为什么会引入service? ...

  2. 能够让机器狗学会灭火, ModelArts3.0让AI离我们又近一步

    摘要:训练.标注成本节省90%!华为云自动化AI开发平台ModelArts 3.0发布,从训练数据到模型落地一站式打通. 今年的华为,着实遭遇了不小的困难. 尤其是供应链,包括芯片方面的打击,让华为轮 ...

  3. 整理混乱的头文件,我用include what you use

    摘要:使用include-what-you-use(iwyu/IWYU)清理冗余头文件,补充必要头文件. 本文分享自华为云社区<用include what you use拯救混乱的头文件> ...

  4. 查询速度最高提升50倍!火山引擎ByteHouse在广告投放领域实践分享

     更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   据QuestMobile报告显示,移动互联网已经进入了下半场,在使用人数和使用时长方面已经没有明显增长,互联 ...

  5. OS | 文件系统总结

    文件系统总结 逻辑文件面向用户,学习时应该掌握不同的逻辑文件之间的特点 目录文件时链接逻辑文件和物理文件的桥梁,学习时应该体会到目录文件时如何优化访问时间 物理文件是指文件的数据如何存储在磁盘等存储设 ...

  6. Linux mknod命令详解

    Linux一切皆文件,系统与设备通信之前,要建立一个存放在/dev目录下的设备文件,默认情况下就已经生成了很多设备文件,有时候自己手动新建一些设备文件,这就会用到mknod. 语法格式:mknod[选 ...

  7. vue 搜索框模糊查询 + 优化(节流) + 关键字高亮

    实际效果: 防抖 事件响应函数在一段时间后才执行,如果在这段时间内再次调用,则重新计算执行时间:当预定的时间内没有再次调用该函数,则执行doSomeThing方法. 应用场景: scroll事件滚动触 ...

  8. 区分开发环境和生产环境webpack

  9. P1216-DP【橙】

    在这道题中,我第一次用了memset,确实方便,不过需要注意的是只有全部赋值-1和0的时候才能使用它,否则他能干出吓死人的事.以及memset在cstring头文件里,在本地就算不include也能照 ...

  10. C#将日期格式化为指定格式

    private void btn_GetTime_Click(object sender, EventArgs e) { lab_time.Text = DateTime.Now.ToString(& ...