腾讯云的云硬盘用 DD 命令测试仅有 1.6MB/s 的速度,但腾讯云的工作人员坚称符合预期,由于我对 IO 这块不太熟悉,请大家帮忙看看,谢谢

2018-01-02 13:50:24 +08:00
 sky77733
腾讯云的云硬盘用 DD 命令测试仅有 1.6MB/s 的速度(测试命令 time dd bs=64k count=4k if=/dev/zero of=test ),但腾讯云的工作人员坚称符合预期(在国内友商相同 DD 命令测试均速在 20MB/S 的情况下,这速度真的是符合预期的吗?),多轮工单沟通下来,如果不是在其它的云服务商处也有服务器,我都差点被说服了,由于对系统 IO 这块不是很熟悉,请大家看看,他们所说的是否有理?谢谢

以下是工单的沟通记录:

沟通记录

问题描述 2017-12-31 21:34:52
系统盘所在的云硬盘 IO 极其低下(云硬盘的资源 ID:disk-lyez6hhm ),打开一个几 MB 的文档都要好几秒,请帮我看下,是否是此硬盘所在的仓库负载太高了?我另外一块作数据盘的云硬盘就还算比较正常。谢谢

下面是硬盘的检测信息(多次检测都在 1.5MB/s 左右):
root@VM-0-13-debian:~# time 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, 169.199 s, 1.6 MB/s

real2m49.208s
user0m0.008s
sys0m0.520s




10000340 : 2017-12-31 21:38:19
此问题从今天中午到目前一直是这样,我之前以为是遇到了 IO 负载高峰,但经多次检测一直是这样,应该是云盘所在的节点有问题

腾讯云工程师 : 2017-12-31 21:43:19
您好,关于您反馈的问题正在为您核实,请您耐心等待。

10000340 : 2017-12-31 21:51:38
好的,目前云盘里还没有存放任何资料,如果需要迁移,无需考虑数据保存的问题,直接迁移即可,多谢!

腾讯云工程师 : 2017-12-31 21:54:32
您好,您那边方便提供下服务器登陆密码,我们进去测下吗?

10000340 : 2017-12-31 22:01:36
登录信息,谢谢

root
t*********

腾讯云工程师 : 2017-12-31 22:02:30
好的,收到,感谢您的配合。

腾讯云工程师 : 2018-01-01 10:40:28
您好,经核查您服务器磁盘性能是符合预期的,主要是 dd 命令是单线程的顺序写,块大小指定大小,IOPS 会到瓶颈,指定太大会导致 IOPS 上不去,建议使用 fio 命令可测试出磁盘极限性能,具体可以参考文档中测试方法:
https://cloud.tencent.com/document/product/362/6741
大图


大图



10000340 : 2018-01-01 13:09:07
您好,
这是我刚刚在本机系统盘上所做的测试:
root@VM-0-13-debian:~# time 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, 159.261 s, 1.7 MB/s

real 2m39.286s
user 0m0.016s
sys 0m0.508s

这是在本机附加的数据盘(也是云盘,挂载在 www 目录上)上所作的测试:
root@VM-0-13-debian:/www# time 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, 41.2061 s, 6.5 MB/s

real 0m41.213s
user 0m0.008s
sys 0m0.384s

同一台机器两个不同的云盘,测试结果差距如此大,这很明显是云盘所在的仓库有问题,如此之低的 IO 这怎么可能正常,而同样是云盘的 阿里云 和 京东云 就一直很正常,并且,刚刚我在 V2EX 论坛上咨询其他有你们云主机的人都说这完全不正常,如此之低的性能,如何来跑各类应用呢?我相信我将这对比结果发在你们论坛里也不可能有人敢说这是正常的。


这是阿里云的云盘上同样命令的结果:

# time 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, 10.135 s, 26.5 MB/s

real 0m10.139s
user 0m0.006s
sys 0m0.322s

这是京东云硬盘上同样命令的结果
# time 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, 12.7922 s, 21.0 MB/s

real 0m12.794s
user 0m0.016s
sys 0m0.468s





腾讯云工程师 : 2018-01-01 13:51:27
您好,dd 命令测试具有局限性,麻烦您使用 fio 命令测试一组数据这边对比进一步确认问题,或者授权这边登录您服务器安装 fio 命令进行测试,fio 使用可参考文档 1,各种块存储设备性能对比可参考文档 2
https://cloud.tencent.com/document/product/362/6741
https://cloud.tencent.com/document/product/362/2353

大图



温馨提示:若您在此单中有提供 SecretID/SecretKey 或账号密码等信息,请您在结单后尽快修改,以免造成不必要的损失。

10000340 : 2018-01-01 14:01:39
我明白你所说的 DD 命令的局限性,但问题是,同一台机器,同为云盘,同样执行 DD 命令为何两块硬盘的差距是如此之大?就算是有局限性,为何执行结果差距如此大?这只能说明一个问题,这块系统盘 IO 有问题,你刚刚的解释让我感觉像是我用皮尺量同一件衣服的袖子,发现结果是一只长一只短,你却认为我测量的工具有问题,让我换成你们认可的工具来量,这样有意义吗?

10000340 : 2018-01-01 14:04:31
本机系统云盘( 50GB):268435456 bytes (268 MB) copied, 159.261 s, 1.7 MB/s
本机附加的数据云盘(40GB):268435456 bytes (268 MB) copied, 41.2061 s, 6.5 MB/s

是否换一个工具这两个就一样了呢?谢谢



腾讯云工程师 : 2018-01-01 14:55:27
您好,云硬盘也是网络盘,系统盘和另外的数据盘不一定是在同一个宿主机上,所以性能可能会存在差异,您使用 dd 命令测试有两个弊端,因为是单线程,一个是块大小指定太小,IOPS 到达上限,块大小指定太大,IOPS 上不去,fio 可以开启多线程写入测试,可以测试出磁盘极限性能
http://blog.yufeng.info/archives/2104

10000340 : 2018-01-01 15:13:57
您好,请看看您们论坛里管理人员对 同样的 DD 测试结果为 1.6MB 是怎么说的?

http://bbs.qcloud.com/thread-44620-1-2.html

如果您还非要坚持说 1.6MB/s 就是你们腾讯云的正常速度的话,那我只能说,您这样简单的回避问题会砸了腾讯云招牌的。

祝您新年快乐



10000340: 2018-01-01 15:16:16
同样的 DD 命令,time dd bs=64k count=4k if=/dev/zero of=test oflag=dsync,同样差不多的测试结果,但完全不同的处理。您这是代表您们腾讯云鄙视小客户么?

腾讯云工程师 : 2018-01-01 17:15:07
您好,抱歉让您久等了,目前还在核查您反馈的磁盘性能低问题,有结论给您工单回复,请关注工单回复,谢谢

腾讯云工程师 : 2018-01-02 11:31:05
您好,很抱歉让您久等了。这里和后端同事确认了下,目前在系统盘上使用 dd 命令测试的时候,获得的参数都是较低,但实际上并不会影响性能, 如下是我的测试结果:

广州 s2 机型上系统盘云盘测试结果
time 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, 173.576 s, 1.5 MB/s

real2m53.599s
user0m0.015s
sys0m0.696s


在香港云盘上测试结果:
time 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, 172.495 s, 1.6 MB/s

real2m52.523s
user0m0.016s
sys0m0.732s


系统盘为本地盘的测试结果:
time 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, 64.7305s, 4.1 MB/s

real1m4.77s
user0m0.007s
sys0m0.405s

从测试结果来看,云盘的速率都是差不多的,使用过程中性能都是符合预期的,如果您对磁盘性能要求较高,可以考虑使用本地盘作为系统盘。
另外针对您工单里面反馈的论坛中的那个帖子,这边核实了下,当时对应用户反馈的磁盘是数据盘,并非系统盘。
以上是给您的答复,如果您有疑问,可以继续回复,谢谢。

10000340 : 2018-01-02 13:25:26
抱歉,刚刚又去看了下所说的论坛中的那个帖子,该用户明明很明确的注明了有问题的盘是系统盘,怎么到了这儿就变成非系统盘了呢?下面是你们论坛原贴的内容:
------------------------------------
pdm 发表于 2017-11-22 16:31
你好!可以麻烦提供一下云硬盘的 ID 吗?我们来看下出了什么问题

你好. 这是我的云盘信息:

资源 ID disk-il523keb
状态 已挂载
地域 华东地区(上海) 可用区 上海一区
磁盘类型 云硬盘
磁盘属性 系统盘
云硬盘容量 40G
已挂载云主机 ins-r6qk0rsx
点评


pdm 楼主你好,根据我们后台查看,您的硬盘在双 11 高峰时刻被分配到了负载较高的仓库中,导致硬盘性能收到当时高峰影响,后续已经将其迁移到了负载正常的仓库里,不知道楼主是否方便再测试一下看看结果呢? 详情 回复 发表于 2017-11-24 20:26
----------------------------------

……。此处腾讯云的工程师尚未回复。
14829 次点击
所在节点    云计算
116 条回复
wtks1
2018-01-02 15:03:45 +08:00
我用 U 盘做系统盘的树莓派都不止 LZ 这个数,腾讯也太坑爹了吧
-------------------------------------------------
root@raspberrypi:/home/ftp# time dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
记录了 4096+0 的读入
记录了 4096+0 的写出
268435456 字节(268 MB)已复制,46.7692 秒,5.7 MB/秒

real 0m46.780s
user 0m0.030s
sys 0m2.680s
Daath
2018-01-02 15:04:49 +08:00
自己买的渣渣 bwg 都有 200

```
root@ubuntu:~/tmp# time dd bs=64K count=4K if=/dev/zero of=test
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 0.971854 s, 276 MB/s

real 0m1.007s
user 0m0.000s
sys 0m0.184s
```
realpg
2018-01-02 15:06:03 +08:00
@sky77733 #17
是不是最小配置的 1C 或者 2C 的机器?那很正常
Huang4966
2018-01-02 15:19:32 +08:00
腾讯云 香港
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 110.667 s, 2.4 MB/s

real 1m50.668s
user 0m0.011s
sys 0m0.473s
msg7086
2018-01-02 15:22:07 +08:00
30iops,对于网络硬盘来说是有点慢。

(上面一票用本地硬盘当网络硬盘测的,请你们不要显摆了,网卡延迟和 SATA 总线延迟根本不在一个数量级。)
openbsd
2018-01-02 15:22:17 +08:00
@snail00
命令末尾加 oflag=dsync 试试,我这差距 100 倍啊

4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 0.266384 s, 1.0 GB/s

4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 28.2 s, 9.5 MB/s
msg7086
2018-01-02 15:27:53 +08:00
刚刚在自己买的独立服务器上测过了,结果如下:

第一台:
# dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 109.696 s, 2.4 MB/s

第二台:
# dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 124.721 s, 2.2 MB/s

以及 Amazon 家 AWS 的 SSD 高性能磁盘:
# dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 9.77794 s, 27.5 MB/s

所以,如果你的硬盘不是 SSD,1.6 MB/s 我觉得可以接受。如果是 SSD,那就狠狠怼他们吧。
msg7086
2018-01-02 15:30:04 +08:00
至于楼主你帖子里,第一行说的是测 dd,而工单里却用的 dd dsync,我不知道你是故意的还是不懂。
后面帖子里也是,一会儿贴 dd,一会儿贴 dd dsync,到底哪个?
djy0716
2018-01-02 15:32:34 +08:00
time dd bs=64k count=4k if=/dev/zero of=test
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 0.275719 s, 974 MB/s


腾讯云广州三..
sky77733
2018-01-02 15:33:01 +08:00
@msg7086 用的是 dd dsync
binjjam
2018-01-02 15:33:23 +08:00
dd 测的是顺序写的吧? 4k 是否算小块,一般认为 4k、8k、16k、32k 只关注 iops (我一般是用 fio 测试),如果测吞吐的话,我是用 fio 或者 dd 用 1M 块大小来写。
另外 dd 测试写的话, 建议加下参数 oflag=direct,你没加带缓存测就不准了,下面这个比较辣鸡(正常是能到 500MB/s 的)

time dd if=/dev/zero of=file bs=1M count=1024 oflag=direct
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 3.37362 s, 318 MB/s

real 0m3.376s
user 0m0.002s
sys 0m0.347s
egen
2018-01-02 15:38:13 +08:00
测试了两台阿里云华东一区的小服务器,iops 大概 200 出头

time dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 17.1185 s, 15.7 MB/s
msg7086
2018-01-02 15:39:16 +08:00
@sky77733 是 SSD 吗?不是的话那速度非常快了。
dd dsync 差不多比 dd 慢上 100 倍,dd 应该能到 100MB/s 以上的,你可以试试。
egen
2018-01-02 15:41:25 +08:00
阿里云

time dd if=/dev/zero of=file bs=1M count=1024 oflag=direct
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 18.9442 s, 56.7 MB/s
st2udio
2018-01-02 15:42:07 +08:00
云硬盘很慢的
egen
2018-01-02 15:43:12 +08:00
@egen #34 配置
CPU:1 核
内存:1 GB
实例类型:I/O 优化
实例规格:ecs.xn4.small
实例规格族: 共享基本型
xiaodongus
2018-01-02 15:44:35 +08:00
root@jdu4e00u53f7:~# time dd bs=64k count=4k if=/dev/zero of=test
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 0.177643 s, 1.5 GB/s

real 0m0.179s
user 0m0.000s
sys 0m0.164s


京东 北京区。。。这速度有点厉害了。。。
onion83
2018-01-02 15:46:36 +08:00
腾讯云广州,1 核 1G

bs=64k count=4k
-------------------
time dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
记录了 2212+0 的读入
记录了 2212+0 的写出
144965632 字节(145 MB)已复制,124.098 秒,1.2 MB/秒

bs=1024k count=1k
-------------------
time dd bs=1024k count=1k if=/dev/zero of=test oflag=dsync
记录了 1024+0 的读入
记录了 1024+0 的写出
1073741824 字节(1.1 GB)已复制,106.109 秒,10.1 MB/秒

客服的说法是有道理的,dd 确实是单进程顺序读写,最简单的办法就是跑多个,如:

dd bs=64k count=4k if=/dev/zero of=test1 oflag=dsync 2> 1 &
dd bs=64k count=4k if=/dev/zero of=test2 oflag=dsync 2> 2 &
dd bs=64k count=4k if=/dev/zero of=test3 oflag=dsync 2> 3 &
……

1、2、3 …… 结果相加大概就是这个系统的 IO 性能

IO 性能这东西确实和很多相关:
软件方面:block size,是否使用 buffer,是否使用异步 io
硬件方面:磁盘阵列卡是否带缓存,缓存大小,写策略是 write-through、write-back

很多云主机 dd <1G 快到飞起,但是 > 1G 就原形毕露了,所以跑分还是建立使用专业压测吧。

1、一般大厂的 IO 指标还是能相信的, 但是一分钱一分货。
2、建议使用和自己业务场景相关的压测软件作为基线,如 mongoperf、mysqlslap、redis-benchmark 等。
3、入门低配机器跑分无意义
pq
2018-01-02 15:52:03 +08:00
我猜,所谓的云盘,性能应该主要受节点间网络带宽的影响吧?如果云主机与云盘在同一个交换机下,速度应该很好的,估计腾讯这两个节点肯定不在一个机房,甚至不是同一个运营商。
allen0125
2018-01-02 15:54:02 +08:00
我测了以下我的阿里云,第一次 16M,之后就是 120M,1.4G ,1.5G ,同样感觉不科学

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/419360

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX