第1.10章 elasticsearch优化

1 跨es集群复制
elasticsearch.yml中增加配置,在两个集群都配置上白名单

reindex.remote.whitelist: ["10.101.10.58:9200","10.101.10.59:9200","10.101.10.60:9200"]

其余配置参考第1.8章 elasticsearch水平扩展
Elasticsearch跨集群搜索(Cross Cluster Search)Elasticsearch:跨集群数据迁移之离线迁移执行命令

POST _reindex
 {     "source": {         "remote": {             "host": "http://172.168.1.15:9200"
         },         "index": "test1",         "query": {             "match": {                 "your_cond": "xxx"
             }
         }
     },     "dest": {         "index": "test2"
     }
 }

2 es中swap配置
ElasticSearch:堆大小与swap设置,内存换成硬盘将毁掉服务器的性能,那么对于高性能的数据服务,es有一个优化点就是关闭掉swap

sudo swapoff -a

如果关闭掉了swap,那么vm.swappiness中设置为0,还是1呢?
再看看centos中设置swap交换空间的大小设置和swappiness的比例设置,从这篇文章了解到设置为vm.swappiness=0目前内存使用量还有剩余的话,建议直接将swappiness改成0,这样可以最大限度的使用物理内存,减少硬盘的负载,同时加快速度。也避免在使用Memcached的时候出现"memcached timeout error because of slow response"这样的错误
再看看Linux swappiness参数设置与内存交换 ,这篇文章

vm.swappiness = 0  
仅在内存不足的情况下--当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。
vm.swappiness = 1  
内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上,进行最少量的交换,而不禁用交换。

这样就不难梳理出结论

1、在足够内存的机器,那么可以关闭掉swap,既然已经关闭了swap。那么就有几种策略
   1.1 设置vm.swappiness = 0,这样从操作系统级别给禁用了
   1.2 在elasticsearch.yml中配置bootstrap.mlockall: true,这样让锁定es所占用的内存,不影响其他程序是否使用swap
2、如果没有足够内存的机器,需要将vm.swappiness降低
上一篇:Linux知识汇总


下一篇:在centos7上设置swap交换空间