如何将CPU,RAM,磁盘,碎片分配给ELK堆栈中的节点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将CPU,RAM,磁盘,碎片分配给ELK堆栈中的节点?相关的知识,希望对你有一定的参考价值。

我制作了一个带有3个节点的ELK STACK,其中一个节点是主节点,2个数据节点。假设我有大约1GB的数据要与群集一起使用。我需要知道

  • 每个节点应包含多少分片
  • 应该为每个节点分配多少Ram和CPU
  • 如何为节点分配最大存储空间

我在Ubuntu平台上构建了ELK Stack。

系统1属性

  • 12GB RAM
  • 500 GB硬盘

系统2属性

  • 8GB RAM
  • 500 GB硬盘

系统3属性

  • 4GB RAM
  • 500 GB硬盘

由于有3个节点,我将碎片数量设为9?(3 * 3 = 9)。使用Rest API。

curl -X POST "http://localhost:9200/_template/default" -H 'Content-Type: application/json' -d'
{
  "index_patterns": ["*"],
  "order": -1,
  "settings": {
    "number_of_shards": "9",
    "number_of_replicas": "1"
  }
}
'

我不知道这是对还是错。

我需要建立一个健康的集群。

是否有任何方法或参数来分配分片,副本,RAM,磁盘空间等?

是否有任何方法可以根据文件大小找到理想的分片数?

必须为每个节点分配多少CPU核心?

到目前为止,我引用了以下链接来构建ELK集群。

答案

碎片细节

通常,我们建议如果您不希望数据显着增长,那么:

One primary shard is fine if you have less than 100K documents

One primary shard per node is good if you have over 100K documents

One primary shard per CPU core is good if you have at least a couple million documents

索引可以有多个分片,但任何给定的分片只能属于一个索引。

参考:https://docs.bonsai.io/article/122-shard-primer

以上是关于如何将CPU,RAM,磁盘,碎片分配给ELK堆栈中的节点?的主要内容,如果未能解决你的问题,请参考以下文章

在磁盘上实现的 FIFO 队列(或堆栈),而不是 ram(最好在 C++ 中)[关闭]

在 C# 中获取当前 CPU、RAM 和磁盘驱动器的使用情况

我想知道(公式)如何计算名称节点、纱线和资源管理器的 RAM、CPU 和磁盘内存

堆和堆栈内存是如何管理、实现和分配的?

如何知道有多少物理 Ram 将 imdisk 分配给 ramdisk

NUMA:如何检查 C++ 数组分配在 RAM 的哪个部分?