阿里云vps的io速度是不是很慢?

2013-12-17 13:34:05 +08:00
 mahone3297
最近在做一个站点,图片有点多。全放到web目录下(没有采用第三方存储)
新打开一个站点时,要加载很多图片。。。这时我ssh在服务器上敲命令时,瞬间很卡。。。突然意识到,是磁盘io问题(之前也遇到过,以为可能是网络或者load问题)大家有遇到过我这样的情况吗?
今天测试了下,阿里云vps测试结果如下:
1. 写速度
time dd if=/dev/zero of=test.db bs=1M count=1024 conv=fdatasync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 23.2556 s, 46.2 MB/s

real 0m23.265s
user 0m0.000s
sys 0m1.520s

2. 读速度
time dd if=test.db of=/dev/null bs=1M
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 15.0304 s, 71.4 MB/s

real 0m15.041s
user 0m0.004s
sys 0m1.128s

本地电脑虚拟机测试结果
1. 写
time dd if=/dev/zero of=test.db bs=1M count=1024 conv=fdatasync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 12.0661 s, 89.0 MB/s

real 0m12.247s
user 0m0.012s
sys 0m2.288s

2. 读
time dd if=test.db of=/dev/null bs=1M
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.420771 s, 2.6 GB/s

real 0m0.425s
user 0m0.012s
sys 0m0.404s

ps:国内用阿里云vps靠谱吗?
2516 次点击
所在节点    VPS
36 条回复
Livid
2013-12-17 14:24:59 +08:00
SSH 卡是因为你的 VPS 的上行带宽满了。阿里云的 VPS 有带宽限制。
mahone3297
2013-12-17 14:45:27 +08:00
@Livid vps上行为什么会满?打开加载vps上的网站,应该算是下行吧,其他我什么事情都没做。敲几个ssh命令,应该上行不会满吧?
varrily
2013-12-17 14:59:18 +08:00
下载图片的时候,你这边是下行,服务器是上行,上行满了,终端卡是很正常的。
felix021
2013-12-17 15:10:24 +08:00
阿里云的磁盘IO的确是比较烂。但是他们有BGP骨干网这个卖点。
wzxjohn
2013-12-17 15:13:53 +08:00
据说阿里云的磁盘是基于NFS的,曾经出现多次nfs连接出错导致全盘只读。。。
robertlyc
2013-12-17 15:27:48 +08:00
哪个云现在没有BGP了
mahone3297
2013-12-17 16:05:08 +08:00
@varrily ok,有点理解 “下载图片的时候,你这边是下行,服务器是上行” 再请教下,上行满了,为什么终端就卡了?
Livid
2013-12-17 16:25:07 +08:00
@mahone3297 uplink 满了的时候,就会发生丢包。
046569
2013-12-17 16:36:00 +08:00
1.阿里云IO是不快,测试结果发到官方被删帖,在这补发一次:
阿里云高性能磁盘IO测试(2013年12月14日)
http://bbs.ymate.me/t/596/1/1
注意最近还是在用旧硬盘,高性能磁盘需要申请.
2.但你的问题并非是IO问题,L大给你解释过了.
3.阿里云靠谱吗?我们迁移到阿里云后434天无重启,客户的机器在上面的也有个百十来台,半年以上没重启的很多.即使是独立服务器,硬盘也经常是瓶颈,多用缓存,注意规避就可以了.个人认为还是比较靠谱的.
sandtears
2013-12-17 17:29:30 +08:00
听说阿里云那边的数据盘是通过网络挂载的 0.0
akira
2013-12-17 18:53:29 +08:00
阿里云的硬盘IO是不高,但是你这个是带宽的原因。
放图片多记得弄大点带宽。
akira
2013-12-17 18:57:55 +08:00
@046569 附带杭州临时硬盘的测试结果,似乎比你测出来的数据要好一点。

dd if=/dev/zero of=temp.dd bs=32k count=2k oflag=dsync
7108864 bytes (67 MB) copied, 3.54786 s, 18.9 MB/s

dd if=/dev/zero of=temp.dd bs=64k count=2k oflag=dsync
134217728 bytes (134 MB) copied, 3.64731 s, 36.8 MB/s

dd if=/dev/zero of=temp.dd bs=32k count=5k
167772160 bytes (168 MB) copied, 0.255099 s, 658 MB/s

dd if=/dev/zero of=temp.dd bs=64k count=5k
335544320 bytes (336 MB) copied, 0.50275 s, 667 MB/s

dd if=/dev/zero of=temp.dd bs=32k count=50k
1677721600 bytes (1.7 GB) copied, 9.34802 s, 179 MB/s

dd if=/dev/zero of=temp.dd bs=64k count=50k
3355443200 bytes (3.4 GB) copied, 24.944 s, 135 MB/s
046569
2013-12-17 20:13:53 +08:00
@akira
蛋疼的是,你占用不了多久,几分钟后就会被降速,本来就不高...
现在的办法还是尽量缓存,少惹硬盘.
VYSE
2013-12-17 20:43:32 +08:00
如果你CLIENT或VPS带宽没问题的话,的确可能遇到IO导致响应迟缓的情况。

我们有个FILE HTTP SERVER,那里SSH操作总会比其他机器缓慢,理论上带宽不是问题,因为是内网。
查过可能原因是IO中断导致,2.6.38内核据说能解决这个问题,另外DD算出来的IO速率可能受IO影响,因为IO操作如果内存够是直接读写内存的,我们128G内存DD也是在GB以上,其实都走内存。
从你阿里云的DD上看,基本走的磁盘,不妨留出更多空闲内存供CACHE。
princeofwales
2013-12-17 20:46:45 +08:00
阿里云的磁盘和AWS EC2一样,是通过网络挂载的,不是本地磁盘,I/O确实是瓶颈
akira
2013-12-17 21:03:27 +08:00
@046569 少惹硬盘是共识了。
ps :临时硬盘是有丢失数据的可能的,就算上线了,用途也有限。
mahone3297
2013-12-17 22:29:02 +08:00
@046569
@Livid
@sandtears
@akira
- 购买服务器的时候,好像只看到说带宽,没看到说上行多少,下行多少,哪里可以看?
- 如何看uplink是否满了?
- 我没用阿里云的数据盘,直接用的阿里云系统送的20g
- 图片有点多的话,一般要多大带宽?这个怎么算?

@VYSE
你说的dd写内存,可以看下参数,conv=fdatasync 加上这个就不写内存缓存了

谢谢各位热心回复!学习了!
VYSE
2013-12-17 23:10:31 +08:00
@mahone3297 写的测试是准确的,主要是读的,那个2.6GB的,读的时候还是已经有CACHE了
Benisme
2013-12-17 23:11:36 +08:00
@mahone3297 产品帮助里写的是上行不限,下行你买多少就是多少。
图片多就不要把图片放在阿里云,用oss或者七牛或者又拍云(我觉得七牛不错)减轻带宽压力。
drawingsinging
2013-12-17 23:16:28 +08:00
如果追求速度的话,图片建议用阿里云oss存储或者七牛或者又拍.数据库可以用阿里云rds.

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

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

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

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

© 2021 V2EX