4

我在由 3 个节点组成的集群中运行 Datastax Enterprise。它们都在相同的硬件下运行:2 核 Intel Xeon 2.2 Ghz、7 GB RAM、4 TB Raid-0

这应该足以运行一个轻负载的集群,存储少于 1 GB 的数据。

大多数情况下,一切都很好,但有时与 OpsCenter 中的修复服务相关的运行任务有时会卡住;这会导致该节点不稳定并增加负载。

但是,如果节点重新启动,卡住的任务不会出现,负载会再次处于正常水平。

由于我们的集群中没有太多数据,我们使用 中min_repair_time定义的参数opscenterd.conf来延迟修复服务,使其不会过于频繁地完成。

标记为“完成”并显示进度为 100% 的任务并没有消失,这似乎有点奇怪,是的,我们已经等了好几个小时才让它们消失,但它们不会吨;我们发现解决此问题的唯一方法是重新启动节点。

运行任务的节点

运行任务

编辑:

这是来自的输出nodetool compactionstats

在此处输入图像描述

编辑2:

我在 Datastax Enterprise v. 4.6.0 和 Cassandra v. 2.0.11.83 下运行

编辑3:

这是从dstat行为正常的节点上输出的

来自普通节点的 dstat

这是从dstat带有卡住压实的节点上的输出

来自节点的 dstat 与卡住的压实

编辑4:

来自iostat节点上的输出与卡住压实,请参阅高“iowait”

在此处输入图像描述

4

4 回答 4

4

天蓝色存储

Azure 在单个用户帐户下的存储帐户之间划分磁盘资源。单个用户帐户中可以有多个存储帐户。

出于运行 DSE [或 cassandra] 的目的,请务必注意,如果 DSE [或 cassandra] 的配置类似于本文档中脚本中的示例,则不应在两个以上节点之间共享单个存储帐户。本文档将每个节点配置为 16 个磁盘。每个磁盘的 IOPS 限制为 500。在 RAID-0 中配置时,这会产生 8000 IOPS。因此,两个节点将达到 16,000 IOPS,三个节点将超过限制。

在此处查看详细信息

于 2015-02-10T13:44:47.177 回答
4

所以,这是一个已经调查了很长时间的问题,我们已经找到了解决方案,但是,我们不确定导致这些问题的潜在问题是什么,但我们还是得到了一个线索, 什么都无法确认。

基本上我们所做的是设置一个 RAID-0,也称为条带化,由四个磁盘组成,每个磁盘大小为 1 TB。使用 Stripe 时,我们应该在某处看到 4x 单磁盘 IOPS,但我们没有,因此 RAID 的设置显然有问题。

当我们对自己说节点“卡住”时,我们使用了多个实用程序来确认 CPU 大部分时间都在等待 IO 响应。很明显,IO 和很可能是我们的 RAID 设置导致了这种情况。我们在 MDADM 设置等方面尝试了一些差异,但没有设法使用 RAID 设置解决问题。

我们开始调查 Azure 高级存储(仍处于预览阶段)。这可以将磁盘附加到其底层物理存储实际上是 SSD 的 VM。所以我们说,好吧,SSD => 更多 IOPS,所以让我们试一试。我们没有使用 SSD 设置任何 RAID。每个虚拟机只使用一个 SSD 磁盘。

我们已经运行集群将近 3 天了,我们已经对其进行了很多压力测试,但无法重现问题。

我想我们没有归结为真正的原因,但结论是以下一些一定是我们问题的根本原因。

  • 磁盘太慢(写入 > IOPS)
  • RAID 设置不正确,导致磁盘无法正常运行

这两个问题密切相关,很可能是我们基本上只是以错误的方式设置磁盘。但是,SSD = 给人们更多的权力,所以我们一定会继续使用 SSD。

如果有人遇到我们在 Azure 上使用 RAID-0 在大磁盘上遇到的相同问题,请不要犹豫,在此处添加。

于 2015-02-13T08:49:15.060 回答
3

您遇到的部分问题是您在这些系统上没有大量内存,而且即使每个节点只有 1GB 的数据,您的节点也可能会遇到 GC 压力。检查system.log错误和警告,因为这将提供有关集群上正在发生的事情的线索。

于 2015-02-08T01:26:19.397 回答
2

OpsCenter 架构中的 rollups_60 表包含所有 Cassandra、操作系统和 DSE 指标的最低(分钟级别)粒度时间序列数据。无论您是否在仪表板中为它们构建了图表,都会收集这些指标,以便您可以在需要时获取历史视图。这张表可能超出了您的小型硬件。

您可以尝试调整 OpsCenter 以避免此类问题。以下是 opscenterd.conf 文件中的一些配置选项:

  1. 将键空间(例如 opsc 键空间)添加到您的ignored_keyspaces设置
  2. 1min_ttl您还可以通过调整设置来减少此表上的 TTL

来源: Opscenter Config DataStax docs Metrics Config DataStax Docs

于 2015-02-05T22:45:27.040 回答