【问题标题】:How to get more Disk performance in Google Cloud?如何在 Google Cloud 中获得更高的磁盘性能?
【发布时间】:2017-10-27 13:37:45
【问题描述】:

我们的一个 (Ubuntu 16.04) Google Cloud VM 的其中一个卷几乎一直处于 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

目前这是一个 2.5T 持久性 SSD。

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

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

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

type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,noquota)

有什么建议吗?

【问题讨论】:

  • 增大磁盘(即使没有使用额外的磁盘)是否也会使其更快?
  • 考虑到Google Cloud Console在创建磁盘时所说的可靠,一旦超过500GB,IOP的数量不会随着磁盘空间的增加而增加。您的实例有多少 vCpus?
  • 实例当前有32个vcpus
  • 因为每个实例支持的随机 IOPS 也取决于 vCpu 的数量。文档指出读取次数应为:16 到 31 个 vCPU=25,000 32+ vCPUs=40,000。我不知道是否值得尝试增加数量。我将以下文档链接给你,以防你以前没有看到它:cloud.google.com/compute/docs/disks/…
  • 例如将 RAID 10 与多个磁盘(每个至少 500GB SSD)一起使用可能会加快您的存储速度。您的实例至少应该有 8 个 CPU 以获得最大的网络性能。或者,也许你可以看看更高的水平?您可以添加数据库副本并从中读取数据。分区也是分配写入的好方法。

标签: google-cloud-platform storage google-compute-engine xfs


【解决方案1】:

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

GCE 会限制 IOPS 和带宽的磁盘性能 - 您将受到您首先命中的任何限制。原因是大量的小操作比一些大的操作成本更高。

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

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

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

文档有一个in-depth article going through all these aspects。总而言之,一旦磁盘大小、类型和核心数量达到极限,就无法进一步提高性能。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-04
    • 2014-07-24
    • 2011-12-08
    • 1970-01-01
    • 2018-03-06
    • 2021-09-30
    • 2016-08-26
    • 2023-03-22
    相关资源
    最近更新 更多