我们刚刚切换到Google Compute Engine,并且在磁盘速度方面存在重大问题。它大约是Linode的5%或者更糟。它的写入速度从未超过20M / s,读取速度不超过10M / s。大多数时候,写作速度为15M / s,阅读速度为5M / s。
我们目前正在运行n1-highmem-4
(4个vCPU,26 GB内存)计算机。 CPU&记忆不是瓶颈。只需运行一个从PostgreSQL数据库读取行的脚本,处理它们,然后写回PostgreSQL。它只是为了共同的工作来批量更新数据库行。尝试运行20个进程以利用多核,但整体进度仍然缓慢。
我们认为磁盘可能是瓶颈,因为流量异常低。
最后我们决定做基准测试。我们发现它不仅速度慢,而且似乎有一个可重复的主要错误:
至少运行三次基准测试:
dd if=/dev/zero bs=1024 count=5000000 of=~/5Gb.file
我们发现它变得极其缓慢,根本无法完成基准测试。
答案 0 :(得分:9)
永久磁盘性能与磁盘本身及其连接的VM的大小成正比。磁盘(或VM)越大,性能越高,因此从本质上讲,您为磁盘或VM支付的价格不仅要支付磁盘/ CPU / RAM,还要支付IOPS和吞吐量。
引用Persistent Disk documentation:
永久磁盘性能取决于卷的大小和 您选择的磁盘类型。更大的卷可以实现更高的I / O级别 比较小的卷。没有单独的I / O费用作为费用 I / O功能包含在永久磁盘的价格中。
持久性磁盘性能可以描述如下:
- IOPS性能限制随持久磁盘卷的大小呈线性增长。
- 吞吐量限制也会线性增长,直至永久磁盘所连接的虚拟机的最大带宽。
- 较大的虚拟机比较小的虚拟机具有更高的带宽限制。
页面上还有一个更详细的定价图表,显示您购买的每GB空间的价格(以下数据是截至2014年8月的最新数据):
Standard disks SSD persistent disks
Price (USD/GB per month) $0.04 $0.025
Maximum Sustained IOPS
Read IOPS/GB 0.3 30
Write IOPS/GB 1.5 30
Read IOPS/volume per VM 3,000 10,000
Write IOPS/volume per VM 15,000 15,000
Maximum Sustained Throughput
Read throughput/GB (MB/s) 0.12 0.48
Write throughput/GB (MB/s) 0.09 0.48
Read throughput/volume per VM (MB/s) 180 240
Write throughput/volume per VM (MB/s) 120 240
并在页面上显示特定磁盘大小的具体示例:
作为如何使用性能图表来确定的示例 你想要的磁盘卷,考虑500GB标准持久性 磁盘会给你:
- (0.3 x 500)= 150个小随机读数
- (1.5 x 500)= 750小型随机写入
- (0.12 x 500)= 60 MB / s的大序列读数
- (0.09 x 500)= 45 MB / s的大顺序写入