Skip to content

Instantly share code, notes, and snippets.

@solar
Created October 16, 2012 08:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save solar/3898082 to your computer and use it in GitHub Desktop.
Save solar/3898082 to your computer and use it in GitHub Desktop.
install kestrel with supervisor
#!/usr/local/bin/zsh
version="2.3.4"
priority="20304"
curl -L -O http://robey.github.com/kestrel/download/kestrel-${version}.zip
unzip kestrel-${version}.zip
sudo mkdir -p /usr/local/kestrel/{config,scripts}
sudo cp -r kestrel-${version} /usr/local/kestrel/${version}
sudo alternatives --install /usr/local/kestrel/kestrel.jar kestrel /usr/local/kestrel/${version}/kestrel_2.9.1-${version}.jar $priority
sudo cp ./test.scala /usr/local/kestrel/config/
sudo cp ./kestrel.sh /usr/local/kestrel/scripts/
sudo cp ./kestrel.ini /etc/supervisord.d/
[program:kestrel]
command=/usr/local/kestrel/scripts/kestrel.sh test
autostart=true
autorestart=true
user=root
#!/usr/local/bin/zsh
stage=$1
java=/usr/bin/java
base=/usr/local/kestrel
jar=$base/kestrel.jar
conf=$base/config/$stage.scala
gclog=/var/log/kestrel/gc.log
javaopts=(
$javaopts
-server
-Xmx1024m
-Xms1024m
-XX:NewSize=256m
-XX:MaxNewSize=256m
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-Xloggc:$gclog
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Duser.timezone=Asia/Tokyo
)
exec $java $javaopts -jar $jar -f $conf
import com.twitter.conversions.storage._
import com.twitter.conversions.time._
import com.twitter.logging.config._
import com.twitter.ostrich.admin.config._
import net.lag.kestrel.config._
new KestrelConfig {
listenAddress = "0.0.0.0"
memcacheListenPort = 2221
textListenPort = 2222
thriftListenPort = 2229
queuePath = "/var/spool/kestrel"
clientTimeout = None
expirationTimerFrequency = 1.second
maxOpenTransactions = 100
// default queue settings:
default.defaultJournalSize = 16.megabytes
default.maxMemorySize = 128.megabytes
default.maxJournalSize = 1.gigabyte
default.syncJournal = 100.milliseconds
admin.httpPort = 2223
admin.statsNodes = new StatsConfig {
reporters = new TimeSeriesCollectorConfig
}
loggers = new LoggerConfig {
level = Level.INFO
handlers = new FileHandlerConfig {
filename = "/var/log/kestrel/kestrel.log"
roll = Policy.SigHup
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment