对于日志收集系统来说,就是使用尽可能少的资源来存储尽可能多的日志,所以需要结合日志集群的特点进行优化。这些优化一般可以分为两个方面,一个方面是提升服务器配置,给更多的资源,比如加机器,上ssd等这种,这种优化会提升集群的写入效率,但是不会有其他的损失,甚至其他方面也会有提升;还有一方面的优化则是带有trade-off的,也就是牺牲一些其他方面的性能来提升写入的效率(比如降低search的资源)。
2. 服务器配置优化服务器的配置优化和搭建用于online搜索的集群类似
- 提升集群的节点数量
- 使用专用的master
- 给每个节点更多的内存和更多的cpu核数
- 节点要开启memory-lock
- jvm配置优化
- 使用ssd磁盘(这个实际上是可以对于高index专用的优化)
-
索引的shard数量合理设置,保证每个shard数据量大概为20-50g,可以减小对内存的使用,副本数最多设置为1即可
-
索引的refresh设置更大,来降低refresh的开销,要配置到index-teplate中(因为索引按天生成)
-
"index.refresh_interval":"30s"
-
-
translog设置,减小translog对性能的消耗,这种在节点挂掉的时候有可能会发生丢数据的情况
-
"translog": { "flush_threshold_size": "1024mb", "sync_interval": "600s", "durability": "async" }
-
对于日志集群,一般是写多读少,所以可以分配更多的内存来做index buffer
indices.memory.index_buffer_size: 30%
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)