AWS hs1.8xlarge RAID 性能问题

AWS hs1.8xlarge RAID 性能问题

编辑:我无法让我的 hs1.8xlarge AWS 实例从其本地 24 个驱动器。请不要告诉我如何使 EBS 卷更快。


背景:在 Amazon cc1.4xlarge 实例(我们称之为)上运行 Greenplum 单节点版本 4.0.4.0 几年并取得巨大成功后gp,我认为利用 hs1.8xlarge 实例及其 24 个 hdd(48TB 原始)本地安装磁盘以及 120GB RAM 确实很不错。我们称此新设置为hsgp

在 上gp,我已将其安装在 RAID-0 20 EBS 卷中(鉴于 EBS 卷已备份并且对位错误具有相对强大的抵抗力,我认为我会追求最大的速度)。

现在,我认为新的 hs1.8xlarge 会比该设置好很多。到目前为止,我错了。一堆小而简单的查询(每个查询几百万行)的平均时间为 900 毫秒gp, 为 2800 毫秒hsgp。更大的查询(60 亿行)也显示出至少 2 到 3 倍的优势gp

我绝对不是 RAID 级别的专家,但我认为 RAID-10 是 24x 2TB 驱动器的合理选择。我ext4在 RAID 阵列上使用,带有-m .1 -b 4096选项,并且已安装-a noatime

我注意到的一件事是,即使 mdadm 花了三天时间才稳定下来(“重新同步驱动器”),它也没有亚马逊声称的 hs1.8xlarge 那样快:我的写入速度大约为 305MB/s,读取速度为 705MB/s。亚马逊表示,连续写入速度可以达到 2.4GiB/s,连续读取速度可以达到 2.6GiB/s。

有什么想法可以获得更高性能的设置吗?

我是否应该放弃统一的磁盘空间(具有 24 个驱动器的阵列),而是使用较小的阵列(每个 greenplum 切片一个)?

以下是hsgp设置的详细信息:

我使用了 hvm Amazon linux 实例(amzn-ami-hvm-2013.09.1.x86_64-ebs (ami-d1bfe4b8)),并更新到vmlinuz-3.4.71-63.98.amzn1

下面给出了调整系统的参数。

系统配置信息:

# greenplum specifics in /etc/sysctl.conf
kernel.sem = 250 64000 100 512
kernel.shmmax = 68719476736
kernel.shmmni = 4096
kernel.shmall = 4294967296
kernel.sem = 250 64000 100 512
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_max_syn_backlog=4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog=10000
vm.overcommit_memory=2

限制:

# greenplum specifics in /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

RAID 阵列详细信息:

mdadm --create --verbose /dev/md0 --chunk=2048 --level=raid10 --raid-devices=24 /dev/xvd[b-y]

mkfs.ext4 -v -m .1 -b 4096 /dev/md0
mount -o noatime /dev/md0 /data

答案1

造成这种绩效差距的原因有以下几点:

  1. 比较 24 轴 RAID-10 与 20 轴 RAID-0 卷写入性能,预计最大分别为单个磁盘的 12 倍和 20 倍。因此,一开始就减慢约 2 倍的速度并不疯狂。
  2. 您设置的块大小仅为 2KB。默认值为 512KB。(支持基准)。
  3. 实际引用“每秒2.6 GB的读写性能......块大小为 2MiB“(来源)。您的 ext4 块大小为 4K,比原来的小 512 倍。

您还遗漏了有关 20-EBS 支持的卷设置的详细信息。如果不指定卷大小或类型(ssd GP、ssd 预配 IOPS 或磁性),我们只能完全猜测等式的大小。

答案2

如果 diskio 是您的瓶颈,通过以 4000G/s 的速度运行 iops 卷,您可能会获得更好的性能和更轻松的管理......这比常规 ebs 卷上的 raid0 更容易管理,并且 ebs 快照的能力使恢复变得容易。我的初步基准测试显示 iops 4000 比具有 6 个 100G 分片的 raid0 更快,但我还没有进行彻底和持续的测试来给出确切的数字。

相关内容