Fri Apr 25 08:47:52 2014 UTC ()
Default fd limit is too low for ElasticSearch, trick taken from mail/dovecot


(imil)
diff -r1.1 -r1.2 pkgsrc/databases/elasticsearch/Makefile
diff -r1.1 -r1.2 pkgsrc/databases/elasticsearch/files/elasticsearch.sh

cvs diff -r1.1 -r1.2 pkgsrc/databases/elasticsearch/Makefile (expand / switch to unified diff)

--- pkgsrc/databases/elasticsearch/Makefile 2014/04/16 17:22:14 1.1
+++ pkgsrc/databases/elasticsearch/Makefile 2014/04/25 08:47:51 1.2
@@ -1,16 +1,17 @@ @@ -1,16 +1,17 @@
1# $NetBSD: Makefile,v 1.1 2014/04/16 17:22:14 imil Exp $ 1# $NetBSD: Makefile,v 1.2 2014/04/25 08:47:51 imil Exp $
2 2
3DISTNAME= elasticsearch-1.1.0 3DISTNAME= elasticsearch-1.1.0
 4PKGREVISION= 1
4CATEGORIES= textproc 5CATEGORIES= textproc
5MASTER_SITES= https://download.elasticsearch.org/elasticsearch/elasticsearch/ 6MASTER_SITES= https://download.elasticsearch.org/elasticsearch/elasticsearch/
6 7
7MAINTAINER= imil@NetBSD.org 8MAINTAINER= imil@NetBSD.org
8HOMEPAGE= http://www.elasticsearch.org/ 9HOMEPAGE= http://www.elasticsearch.org/
9COMMENT= Distributed RESTful Search Engine 10COMMENT= Distributed RESTful Search Engine
10LICENSE= apache-2.0 11LICENSE= apache-2.0
11 12
12USE_LANGUAGES= # none 13USE_LANGUAGES= # none
13USE_JAVA= run 14USE_JAVA= run
14USE_JAVA2= yes 15USE_JAVA2= yes
15NO_BUILD= yes 16NO_BUILD= yes
16 17

cvs diff -r1.1 -r1.2 pkgsrc/databases/elasticsearch/files/elasticsearch.sh (expand / switch to unified diff)

--- pkgsrc/databases/elasticsearch/files/elasticsearch.sh 2014/04/16 17:22:14 1.1
+++ pkgsrc/databases/elasticsearch/files/elasticsearch.sh 2014/04/25 08:47:52 1.2
@@ -1,53 +1,66 @@ @@ -1,53 +1,66 @@
1#! @RCD_SCRIPTS_SHELL@ 1#! @RCD_SCRIPTS_SHELL@
2# 2#
3# $NetBSD: elasticsearch.sh,v 1.1 2014/04/16 17:22:14 imil Exp $ 3# $NetBSD: elasticsearch.sh,v 1.2 2014/04/25 08:47:52 imil Exp $
4# 4#
5# PROVIDE: elasticsearch 5# PROVIDE: elasticsearch
6# REQUIRE: DAEMON 6# REQUIRE: DAEMON
7# 7#
8 8
9. /etc/rc.subr 9. /etc/rc.subr
10 10
11name="elasticsearch" 11name="elasticsearch"
12rcvar=$name 12rcvar=$name
13pidfile="@ES_PIDDIR@/elasticsearch.pid" 13pidfile="@ES_PIDDIR@/elasticsearch.pid"
14required_files="@PKG_SYSCONFDIR@/elasticsearch.yml" 14required_files="@PKG_SYSCONFDIR@/elasticsearch.yml"
15start_precmd="elasticsearch_precmd" 15start_precmd="elasticsearch_precmd"
16 16
17: ${elasticsearch_user:=@ES_USER@} 17: ${elasticsearch_user:=@ES_USER@}
18: ${elasticsearch_group:=@ES_GROUP@} 18: ${elasticsearch_group:=@ES_GROUP@}
19: ${elasticsearch_config:="@PKG_SYSCONFDIR@/elasticsearch.yml"} 19: ${elasticsearch_config:="@PKG_SYSCONFDIR@/elasticsearch.yml"}
20: ${elasticsearch_min_mem:="256m"} 20: ${elasticsearch_min_mem:="256m"}
21: ${elasticsearch_max_mem:="1g"} 21: ${elasticsearch_max_mem:="1g"}
22: ${elasticsearch_props:=""} 22: ${elasticsearch_props:=""}
 23: ${elasticsearch_fdlimit:="768"}
23 24
24ES_CLASSPATH="@ES_LIBDIR@/@DISTNAME@.jar:@ES_LIBDIR@/*" 25ES_CLASSPATH="@ES_LIBDIR@/@DISTNAME@.jar:@ES_LIBDIR@/*"
25 26
26command="@PKG_JAVA_HOME@/bin/java" 27command="@PKG_JAVA_HOME@/bin/java"
27# flags taken from bin/elasticsearch and bin/elasticsearch.in.sh 28# flags taken from bin/elasticsearch and bin/elasticsearch.in.sh
28command_args=" -Delasticsearch \ 29command_args=" -Delasticsearch \
29 -Des.pidfile=${pidfile} \ 30 -Des.pidfile=${pidfile} \
30 -Des.config=${elasticsearch_config} \ 31 -Des.config=${elasticsearch_config} \
31 -Xms${elasticsearch_min_mem} \ 32 -Xms${elasticsearch_min_mem} \
32 -Xmx${elasticsearch_max_mem} \ 33 -Xmx${elasticsearch_max_mem} \
33 -Xss256k \ 34 -Xss256k \
34 -Djava.awt.headless=true \ 35 -Djava.awt.headless=true \
35 -XX:+UseParNewGC \ 36 -XX:+UseParNewGC \
36 -XX:+UseConcMarkSweepGC \ 37 -XX:+UseConcMarkSweepGC \
37 -XX:CMSInitiatingOccupancyFraction=75 \ 38 -XX:CMSInitiatingOccupancyFraction=75 \
38 -XX:+UseCMSInitiatingOccupancyOnly \ 39 -XX:+UseCMSInitiatingOccupancyOnly \
39 -XX:+HeapDumpOnOutOfMemoryError \ 40 -XX:+HeapDumpOnOutOfMemoryError \
40 -XX:+UseCMSInitiatingOccupancyOnly \ 41 -XX:+UseCMSInitiatingOccupancyOnly \
41 -cp ${ES_CLASSPATH} \ 42 -cp ${ES_CLASSPATH} \
42 ${elasticsearch_props} \ 43 ${elasticsearch_props} \
43 org.elasticsearch.bootstrap.Elasticsearch \ 44 org.elasticsearch.bootstrap.Elasticsearch \
44 >/dev/null &" 45 >/dev/null &"
45 46
 47# ElasticSearch is fd hungry, default limit leads to write locks
 48SOFT_FDLIMIT=`ulimit -S -n`
 49HARD_FDLIMIT=`ulimit -H -n`
 50
 51if [ ${elasticsearch_fdlimit} -gt ${SOFT_FDLIMIT} ]; then
 52 if [ ${elasticsearch_fdlimit} -le ${HARD_FDLIMIT} ]; then
 53 ulimit -S -n ${elasticsearch_fdlimit}
 54 else
 55 ulimit -S -n ${HARD_FDLIMIT}
 56 fi
 57fi
 58
46elasticsearch_precmd() 59elasticsearch_precmd()
47{ 60{
48 @TOUCH@ ${pidfile} 61 @TOUCH@ ${pidfile}
49 @CHOWN@ ${elasticsearch_user}:${elasticsearch_group} ${pidfile} 62 @CHOWN@ ${elasticsearch_user}:${elasticsearch_group} ${pidfile}
50} 63}
51 64
52load_rc_config "$name" 65load_rc_config "$name"
53run_rc_command "$1" 66run_rc_command "$1"