设置ES的JVM最大最小内存限制
1 2 3 4 5 6 7 8 |
1.ElasticSearch设置的内存不要超过32G 一旦你越过那个神奇的30-32G的边界,指针就会切回普通对象的指针,每个对象的指针都变长了,就会使用更多的CPU内存带宽,也就是说你实际上失去了更多的内存。 2.ES的服务器,一半的内存都给到ES使用 内存对于Elasticsearch来说绝对是重要的,用于更多的内存数据提供更快的操作。而且还有一个内存消耗大户-Lucene,Lucene的性能取决于和OS的交互,如果你把所有的内存都分配给Elasticsearch,不留一点给Lucene,那你的全文检索性能会很差的,最后标准的建议是把50%的内存给elasticsearch,剩下的50%也不会没有用处的,Lucene会很快吞噬剩下的这部分内存。不要超过32G 3.如何设置 刚开始给一个很小的值,查看内存消耗,内存消耗过快慢慢的提高值,监控读写速率达到最高时确定设置的内存 |
问题
1 2 3 |
1.数据过多怎么办,磁盘空间不足怎么办? 1)跟开发沟通,先尝试删除没有用的数据 2)如果删除后资源还是不足,在考虑添加资源 |
优化文件描述符
1 2 3 4 5 6 7 8 |
#配置文件描述符 [root@es01 ~]# vim /etc/security/limits.conf * - nofile 65535 #普通用户 [root@es01 ~]# vim /etc/security/limits.d/20-nproc.conf * soft nproc 4096 root soft nproc unlimited |
语句优化
1 2 |
1.条件程序时,尽量使用term查询,减少range查询 2.建立索引的时候,尽量使用大集合的方式 |