es内存设置:
Elasticsearch (ES) 的最小内存大小取决于你的用例和集群配置。通常来说,为了使Elasticsearch稳定运行,你需要至少给它分配一定的内存。以下是一些基本的指导原则:
对于开发或测试环境,通常你可以分配到机器内存的一半。
对于生产环境,至少应该分配2GB的内存给Elasticsearch,但这依赖于你的数据量和查询复杂度。
如果你的Elasticsearch节点配置了足够的内存,它会自动管理索引数据所需的内存,并进行相应的优化。
在Java虚拟机(JVM)中设置Elasticsearch的内存大小,可以通过修改jvm.options文件来实现。例如,你可以设置初始堆大小和最大堆大小:
-Xms2g
-Xmx2g
这将设置Elasticsearch的初始堆内存为2GB,最大堆内存也为2GB。
请记住,Elasticsearch也会使用一些内存来进行操作,如文件系统缓存和线程等,所以给Elasticsearch分配的总内存应该稍微大于你设定的JVM堆内存大小。
配置es最小内存为2G(最低要求),内存配置修改如下配置文件:/usr/local/elasticsearch/elasticsearch-7.6.0/config/jvm.options,如下图:
[search@192 bin]$ ./elasticsearch -d
future versions of Elasticsearch will require Java 11; your Java version from [/data/web/env/jdk1.8.0_271/jre] does not meet this requirement
[search@192 bin]$ ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/elasticsearch/elasticsearch-7.6.0/logs/my-esCluster.log
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]解决方法:
1.临时设置:
执行以下命令来临时增加 vm.max_map_count 的值:
sudo sysctl -w vm.max_map_count=262144
这将立即生效,但在系统重启后将失效。
2.永久设置:
编辑 /etc/sysctl.conf 文件,添加或修改以下行:
vm.max_map_count=262144
然后运行以下命令来使改动生效:
sudo sysctl -p