Google Compute Engine VM磁盘非常慢

use*_*595 7 google-compute-engine

我们刚刚切换到Google Compute Engine,并且在磁盘速度方面存在重大问题.它大约是Linode的5%或更糟.写入时不超过20M/s,读取时不超过10M/s.大多数情况下,写入时为15M/s,读取时为5M/s.

我们目前正在运行n1-highmem-4(4个vCPU,26 GB内存)计算机.CPU和内存不是瓶颈.只需运行一个从PostgreSQL数据库读取行的脚本,处理它们,然后写回PostgreSQL.这只是一个共同的工作,批量更新数据库行.尝试运行20个进程以利用多核,但整体进度仍然缓慢.

我们认为磁盘可能是瓶颈,因为流量异常低.

最后我们决定做基准测试.我们发现它不仅速度慢,而且似乎有一个可重复的主要错误:

  1. 创建并连接到实例
  2. 运行基准至少三次:

    dd if=/dev/zero bs=1024 count=5000000 of=~/5Gb.file
    
    Run Code Online (Sandbox Code Playgroud)

我们发现它变得极其缓慢,根本无法完成基准测试.

Mis*_*man 9

永久磁盘性能与磁盘本身及其连接的VM的大小成正比.磁盘(或VM)越大,性能越高,因此从本质上讲,您为磁盘或VM支付的价格不仅支付磁盘/ CPU/RAM,还支付IOPS和吞吐量.

引用永久磁盘文档:

永久磁盘性能取决于卷的大小和您选择的磁盘类型.较大的卷可以实现比较小的卷更高的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
Run Code Online (Sandbox Code Playgroud)

以及磁盘特定大小将为您提供的页面上的具体示例:

作为如何使用性能图表来确定所需磁盘卷的示例,请考虑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的大型顺序写入