a)JVM内存设置不得超过设备内存的一半,且不得超过32GB。(./bin/elasticsearch-Xmx10g-Xms10g或者修改./bin/文件:
**一般分配1/4-1/2内存给主机**
设置每个线程的栈大小单个ES线程携带的数据量较大
JAVA_OPTS="$JAVA_OPTS-Xss128m"
b)只修改swap参数当内存不足时(ness=1)
c)此时不要修改GC方法
d)锁定内存并阻止JVM写入swap。为了避免降低ES
ll:true
e)的性能,缓存类型设置为SoftReference,只有当内存
不足时才会被回收。max_size::soft
4.评估索引构建性能和检索时序,并修改以下参数。
5.倒排字典索引必须驻留在内存中并且不能被GC。需要监控数据节点上segment的内存增长趋势。
优化不再定期更新的索引(ES2.0后改为forcemergeapi)。Optimze的本质是强制合并剪辑文件,可以节省大量剪辑内存
6.根据硬件环境,如测试结果中的设备数量、磁盘数量、索引大小等,设置最佳分片数量,每个分片的备份数量不要超过10GB,未使用的索引应删除定期进行冷数据迁移。
7.保守配置内存限制参数,尽量使用docvalue存储来减少内存消耗,并在接收时指定大小和参数。
8.如果不使用_all字段,最好关闭该属性,否则创建索引和增加索引大小时会使用更多的CPU。如果不受CPU计算能力的限制,可以选择_compressed文档源。这实际上是整个日志行,因此打开压缩可以减少索引大小。
9.避免导致大型结果集的搜索和分组操作。如果大量数据丢失,可以通过扫描和滚动来实现。
10.了解各种缓存功能,如堆缓存、过滤器缓存、索引缓存、批量队列等,设置合理的大小,根据最坏情况判断堆是否足够。
11.应结合实际应用场景,持续监控集群的使用情况。
上一篇:jvm内存大小多少合适
下一篇:jvm cms 适合多少内存