我们的一个(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
目前这是一个2.5T的永久固态硬盘。
我的理解是,我无法通过添加虚拟"主轴"然后在它们之间分配工作负载来获得更好的性能。
这是一个数据库卷,所以我也不能真正使用易失性SSD。
我目前有XFS与这些装载选项:
type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,noquota)
有什么建议吗?
GCE上所有持久类型的磁盘存储(包括HDD和SSD)都是基于网络的,数据复制到远程存储以获得更高的可用性。这一方面也是性能考虑因素背后的原因,因为可用网络带宽必须在同一物理机器上的多个租户之间公平共享。
GCE限制了IOPS和带宽的磁盘性能—您将受到第一次命中的限制。这是因为许多小型行动比一些大型行动成本更高。
IOPS和带宽都受到3个方面的限制:
- 类型(HDD与SSD)
- 磁盘大小(较大的磁盘具有更高的限制)
- 核心计数(较大的实例占用机器的较大部分,因此限制更高)
此外,PD流量被计入每个核心网络的出口上限。
文档中有一篇深入的文章,介绍了所有这些方面。总之,一旦磁盘大小、类型和核心数量达到最大值,就无法进一步提高性能。
创建多个持久磁盘的RAID阵列不会提高性能,因为您仍将达到每个实例的限制和网络出口上限。