全球主机交流论坛

标题: 为什么你们测试CAC的IO都喜欢加上缓存? [打印本页]

作者: 坐怀不乱西门庆    时间: 2016-9-10 15:47
标题: 为什么你们测试CAC的IO都喜欢加上缓存?
为什么不用这个
dd bs=64k count=4k if=/dev/zero of=test oflag=dsync

你们这是在寻找接盘侠吗?
作者: nic2013    时间: 2016-9-10 15:49
楼主,你的跟这个 dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync && rm test -rf   有什么区别 ?
作者: 坐怀不乱西门庆    时间: 2016-9-10 15:49
本帖最后由 坐怀不乱西门庆 于 2016-9-10 20:37 编辑

用我的DD在国内某最低配的小鸡鸡上能跑到快70,在CAC上只有2.4
作者: ZeroClover    时间: 2016-9-10 15:52
nic2013 发表于 2016-9-10 15:49
楼主,你的跟这个 dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync && rm test -rf   有什么区别 ...

conv=fsync  Synchronize output data and metadata just before finishing

同步时写入数据,你可以理解为大文件连续写入性能

oflag=dsync  Use synchronized I/O for data. For the output file, this forces a physical write of output data on each write

每一个bs的数据块就写入一次到磁盘,以这个命令为例,就相当于是64K随机写入性能
作者: 坐怀不乱西门庆    时间: 2016-9-10 15:54
nic2013 发表于 2016-9-10 15:49
楼主,你的跟这个 dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync && rm test -rf   有什么区别 ...

不清楚,只是看那几个帖子测IO都在用缓存测
作者: nic2013    时间: 2016-9-10 16:02

[root@qin27 ~]# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync && rm test -rf
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 193.264 s, 5.6 MB/s
[root@qin27 ~]# dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 198.78 s, 1.4 MB/s
[root@qin27 ~]#

这个是我跑的。
作者: hotsnow    时间: 2016-9-10 16:04
要那么好I/O性能有鸟用,一分钱一分货
作者: sylj69    时间: 2016-9-10 16:17
cac测出来基本在1-3左右
作者: 雨宫音羽    时间: 2016-9-10 16:34
楼主就没弄明白这几个参数的含义
conv=fdatasync的意思是,在命令返回前强制将数据刷入硬盘。所以这个并不是“测缓存”(数据已经写入硬盘了),真正“测缓存”的话是什么参数都不带。默认的dd 会将IO操作进行合并优化 以便获得更好的性能。所以conv=fdatasync实际的意思是测试连续写入性能

oflag=dsync的意思是,不合并IO操作,每读取一个block的数据就写入一个block的数据,这个block数据写入并返回以后再读取下一个数据并写入,直到达到count为止。因此这个命令是一种(伪)测试随机写入速度的方法
作者: leoynx    时间: 2016-9-10 17:12
把bs参数和count换一下,会更惊喜的
作者: 坐怀不乱西门庆    时间: 2016-9-10 20:33
雨宫音羽 发表于 2016-9-10 16:34
楼主就没弄明白这几个参数的含义
conv=fdatasync的意思是,在命令返回前强制将数据刷入硬盘。所以这个并不 ...

听起来很复杂的样子,刚才那几个MJJ测出来几十M的速度是怎么来的?为什么我用我这个DD测CAC只有2.4,同样的命令测正常的小鸡也有70多。。
作者: 雨宫音羽    时间: 2016-9-11 08:02
坐怀不乱西门庆 发表于 2016-9-10 20:33
听起来很复杂的样子,刚才那几个MJJ测出来几十M的速度是怎么来的?为什么我用我这个DD测CAC只有2.4,同样 ...

连续写入速度和随机写入速度听说过么 随机写入是HDD的弱项 dsync参数是一种“模拟”随机写入的方法。HDD测出来的dsync都不会太好看 只有几兆很正常。

连续写入速度可以用fdatasync来测 如果这个在HDD上也很慢 说明母鸡超售很厉害
作者: 坐怀不乱西门庆    时间: 2016-9-11 08:17
雨宫音羽 发表于 2016-9-11 08:02
连续写入速度和随机写入速度听说过么 随机写入是HDD的弱项 dsync参数是一种“模拟”随机写入的方法。HDD ...

实际情况可能不是这样。
我国内的小鸡鸡不是SSD,但用
  1. dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
复制代码
可以达到75,CAC号称是SSD最高只有2.4,只能假设CAC的SSD是假的。
用这个fdatasync测试国内的小鸡鸡,速度也只有100多

CAC的超售应该是公认的,但它用fdatasync来测,速度也快的飞起(70多M),这个速度和我用fdatasync测试那款国内鸡鸡的速度相差不多。
作者: 雨宫音羽    时间: 2016-9-11 08:57
坐怀不乱西门庆 发表于 2016-9-11 08:17
实际情况可能不是这样。
我国内的小鸡鸡不是SSD,但用可以达到75,CAC号称是SSD最高只有2.4,只能假设CAC ...


母鸡可以强制开启writeback缓存(即使用dsync也无法避免) 或者使用RAID阵列卡上的写缓存 这样即使是HDD 也能测出很高的dsync速度
作者: 雨宫音羽    时间: 2016-9-11 09:00
另外实际测试4K速度应该是用
dd if=/dev/zero of=test bs=4k count=64k oflag=dsync
每个block size应该是4K而不是64K。楼主那个参数测出来的还不是真正的随机写入速度(虽然本身用dd测速度就很不正规)
作者: greatly    时间: 2016-9-11 11:22
用楼主这个测了也就100多K,CAC要完
作者: 坐怀不乱西门庆    时间: 2016-9-11 14:19
greatly 发表于 2016-9-11 11:22
用楼主这个测了也就100多K,CAC要完

正常能做站的鸡鸡能跑70M。。。




欢迎光临 全球主机交流论坛 (https://loc.888543.xyz/) Powered by Discuz! X3.4