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降低