关于在2g2h服务器上跑ElasticSearch的经历

最近在做一个项目,顺便把前段时间学习的ElasticSearch给用上,所以我在服务器上面安装了ES

结果忽视了个条件,ES默认的JVM内存占用为1G,而我服务器总共才2G,结果当然是寄了。

Restart...

解决方法

JVM调优:

常用的参数(具体的bing下):

-Xmx4g:堆内存最大值为4GB。
-Xms4g:初始化堆内存大小为4GB。
-Xmn1200m:**设置年轻代大小为1200MB。**增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
-Xss512k:**设置每个线程的堆栈大小。**JDK5.0以后每个线程堆栈大小为1MB,以前每个线程堆栈大小为256K。应根据应用线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

不过这里用到-Xmx和-Xms就行了

# 图片里面的代码有点问题,复制这个即可,请根据实际的ElasticSearch版本进行修改
docker run -id --name es -p 9200:9200 -p 9300:9300-e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xmx182, -Xms128m" xpack.security.enabled=true elasticsearch:8.6.2

请在此添加图片描述

请在此添加图片描述

请在此添加图片描述

  • 微信或QQ扫一扫

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注