关于使用supervisor启动Elasticsearch问题
来源:12-15 Nginx uWSGI Daphne Supervisor Django生产环境部署
A_dot_Ham
2020-03-01
老师,我在使用supervisorctl去启动elasticsearch的时候,总是会在后台开很多java进程,然后内存一下就没了,然后我将虚拟机的内存改成5G,但还是一样,只要是使用supervisorctl去启动,就会产生很多java进程,而单独使用elasticsearch的bin目录下的启动就不会有这个问题,我也看了很多关于什么Elasticsearch调优什么,但还是看不懂,而且改了依然是这样的情况。
[root@mr ~]# free -h
total used free shared buff/cache available
Mem: 4.7G 4.4G 126M 4.9M 193M 59M
Swap: 2.0G 1.9G 59M
[root@mr ~]# /usr/local/python3/bin/supervisorctl
celery:celery_worker1 RUNNING pid 9775, uptime 0:01:51
daphne:daphne_worker1 RUNNING pid 9777, uptime 0:01:51
elasticsearch:elasticsearch_worker1 FATAL Exited too quickly (process log may have details)
uwsgi:uwsgi_worker1 RUNNING pid 9783, uptime 0:01:51
supervisor> exit
[root@mr ~]# ps -ef|grep java
zanhu 10202 1 7 16:22 ? 00:00:10 /usr/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/home/zanhu/elasticsearch-2.4.6 -cp /home/zanhu/elasticsearch-2.4.6/lib/elasticsearch-2.4.6.jar:/home/zanhu/elasticsearch-2.4.6/lib/* org.elasticsearch.bootstrap.Elasticsearch start -d
zanhu 10725 1 6 16:22 ? 00:00:09 /usr/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/home/zanhu/elasticsearch-2.4.6 -cp /home/zanhu/elasticsearch-2.4.6/lib/elasticsearch-2.4.6.jar:/home/zanhu/elasticsearch-2.4.6/lib/* org.elasticsearch.bootstrap.Elasticsearch start -d
zanhu 10788 1 8 16:22 ? 00:00:12 /usr/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/home/zanhu/elasticsearch-2.4.6 -cp /home/zanhu/elasticsearch-2.4.6/lib/elasticsearch-2.4.6.jar:/home/zanhu/elasticsearch-2.4.6/lib/* org.elasticsearch.bootstrap.Elasticsearch start -d
zanhu 10875 1 8 16:22 ? 00:00:10 /usr/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/home/zanhu/elasticsearch-2.4.6 -cp /home/zanhu/elasticsearch-2.4.6/lib/elasticsearch-2.4.6.jar:/home/zanhu/elasticsearch-2.4.6/lib/* org.elasticsearch.bootstrap.Elasticsearch start -d
zanhu 10976 1 9 16:23 ? 00:00:13 /usr/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/home/zanhu/elasticsearch-2.4.6 -cp /home/zanhu/elasticsearch-2.4.6/lib/elasticsearch-2.4.6.jar:/home/zanhu/elasticsearch-2.4.6/lib/* org.elasticsearch.bootstrap.Elasticsearch start -d
zanhu 11067 1 11 16:23 ? 00:00:15 /usr/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/home/zanhu/elasticsearch-2.4.6 -cp /home/zanhu/elasticsearch-2.4.6/lib/elasticsearch-2.4.6.jar:/home/zanhu/elasticsearch-2.4.6/lib/* org.elasticsearch.bootstrap.Elasticsearch start -d
zanhu 11113 1 10 16:23 ? 00:00:14 /usr/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/home/zanhu/elasticsearch-2.4.6 -cp /home/zanhu/elasticsearch-2.4.6/lib/elasticsearch-2.4.6.jar:/home/zanhu/elasticsearch-2.4.6/lib/* org.elasticsearch.bootstrap.Elasticsearch start -d
zanhu 11233 1 12 16:23 ? 00:00:14 /usr/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/home/zanhu/elasticsearch-2.4.6 -cp /home/zanhu/elasticsearch-2.4.6/lib/elasticsearch-2.4.6.jar:/home/zanhu/elasticsearch-2.4.6/lib/* org.elasticsearch.bootstrap.Elasticsearch start -d
zanhu 11278 1 12 16:23 ? 00:00:14 /usr/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/home/zanhu/elasticsearch-2.4.6 -cp /home/zanhu/elasticsearch-2.4.6/lib/elasticsearch-2.4.6.jar:/home/zanhu/elasticsearch-2.4.6/lib/* org.elasticsearch.bootstrap.Elasticsearch start -d
这是服务器刚启动的状态,supervisor设置了开机自启,虽然Elasticsearch显示错误,但是网站访问没问题,就是速度较慢,发布新动态会有一点卡顿的感觉。
问题是,如果我使用supervisorctl关闭了所有进程,Elasticsearch的后台的java进程并不会关闭一直占着内存,我kill掉java后,内存就恢复了,然后当我再使用supervisorctl启动所有的进程,这时候访问网页会有非常明显的延时,发布新动态会有大概1~2秒的等待,持续好几天都被这个问题困扰,崩溃极了。
对了,一开部署也是出现问题,我搜了一下其他同学提的问题,有一个也是和我类似的情况,他的页面显示“Ooops!!! 500”,我一开始也遇到了这样的情况,后来好像是将3G内存改为5G后还是做了什么配置修改,就可以正常访问,但是就是Elasticsearch会特别占内存,感觉给多少它都会全吃掉。
3回答
-
囧神1808
2020-03-16
老师的zanhu_superviosr.ini写错了,supervisor只能监控前台进程,不能监控后台进程,不应该写成command = /home/zanhu/elasticsearch-2.4.6/bin/elasticsearch -d,而是直接写成command = /home/zanhu/elasticsearch-2.4.6/bin/elasticsearch,需要去掉-d,这是一个大坑,坑了我一个下午
00 -
Jack
2020-03-02
如果supervisor启还是进程太多的话,可以先这样,启一个进程在后台运行:
nohup ./elasticsearch-2.4.6/bin/elasticsearch > elasticsearch_running.log 2>&1 &
00 -
Jack
2020-03-02
你给虚拟机分配的是多少核?zanhu_elasticsearch.ini文件中有控制进程个数的numproc.
如果不生效的话,你把虚拟机核数改下试试(虽然实际不可能这么操作。。),我也碰到过这个numprocs配置项不生效的情况,现在还没找到原因。
00
相似问题