如何在Google Cloud中获得更多磁盘性能?

rot*_*ten 6 storage xfs google-compute-engine google-cloud-platform

其中一个(Ubuntu 16.04)谷歌云虚拟机的其中一个卷的磁盘利用率几乎一直是100% - 这是从系统中随机抽取的10秒样本:

iostat -x 10

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdd               0.60    17.20 5450.50 2468.00 148923.60 25490.00    44.05    11.81    1.49    1.13    2.29   0.13  99.60
Run Code Online (Sandbox Code Playgroud)

这是目前的2.5T持久SSD.

我的理解是,通过添加虚拟"主轴"然后在它们之间分配工作负载,我无法获得更好的性能.

这是一个数据库卷,所以我也不能真正使用易失性SSD.

我目前在XFS上有这些挂载选项:

type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,noquota)
Run Code Online (Sandbox Code Playgroud)

有什么建议?

men*_*nsi 1

GCE 上的所有持久类型(HDD 和 SSD)磁盘存储都是基于网络的,其中数据被复制到远程存储以获得更高的可用性。这也是性能考虑背后的原因,因为可用网络带宽必须在同一台物理机上的多个租户之间公平共享。

GCE 限制了 IOPS 和带宽的磁盘性能 - 您将受到首先遇到的任何问题的限制。其原因是许多小型操作比一些大型操作成本更高。

IOPS和带宽都受到3个方面的限制:

  • 类型(HDD 与 SSD)
  • 磁盘大小(较大的磁盘享有较高的限制)
  • 核心数(较大的实例享有较高的限制,因为它们占据机器的较大部分)

此外,PD 流量也计入每个核心网络的出口上限。

该文档有一篇深入的文章讨论了所有这些方面。总之,一旦磁盘大小、类型和核心数量达到最大,就无法进一步提高性能。

创建多个永久性磁盘的 RAID 阵列不会提高性能,因为您仍然会达到每个实例的限制和网络出口上限。