Norikraのオプションをまとめておく

毎回忘れるたびにJRubyを起動してオプションを確認していると死にたくなるので、Norikraのオプションをまとめておく。そのうち[@tagomoris](http://twitter.com/tagomoris)さんががんばってドキュメントを書いてくれることを信じている。

ログローテートの設定があることとかもさっき気がついた。

|オプション| 説明 [デフォルト] |
|:-------------|:-------|
| -H, [--host=HOST] | listenするアドレスを指定する [0.0.0.0] |
| -P, [--port=N] | ポートを指定する [26571] |
| -d, [--daemonize] | デーモンとして起動する |
| -s, [--stats=STATS] | ステータスファイルを指定する [なし] |
|  -p, [--pidfile=PIDFILE] | PIDファイルを指定する [/var/run/norikra/norikra.pid] |
| -l, [--logdir=LOGDIR] | ログディレクトリを指定する [なし] |
| [--outfile=OUTFILE] | デーモン化したときに標準出力の内容が出力されるファイル [${logdir}/norikra.out] |
| --log-filesize=LOG-FILESIZE] | ローテートするサイズを指定する [10MB] |
| --log-backups=N |  バックアップを残しておく数 [10] |

## stats fileを指定しよう

Norikraはステータスファイルを指定するとそこに実行中のクエリの内容を保存してくれる。次回起動すると、そのクエリを復元してくれる仕掛けである。

```
norikra start --stats /path/to/data/norikra.stats.json
```

## パフォーマンス周り

Javaアプリケーションということで、`-Xmx`はとりあえず指定したけど、他はよくわからない感じだ。
松竹梅的なノリの`--micro`、`--small`、`--middle`、`--large`があるけど、おそらくそれぞれのスレッド数を指定する様だ。とりあえず`--middle`にしておいたけどよく考えたら4コアしかないマシンなので`--small`の方がよさそう。標準がどれかよくわかんなかったけど、`--micro`だと思う。

秒間100位しか流してなくて、実行してるクエリも1min分くらいしか処理してないのを3つ位なので、いまのところ気になってない。

## output of `bundle exec norikra help start`

```ruby
Usage:
  norikra start [-Xxxx] [other options]

Options:
  -H, [--host=HOST]                   # host address that server listen [0.0.0.0]
  -P, [--port=N]                      # port that server uses [26571]
  -s, [--stats=STATS]                 # status file path to load/dump targets, queries and server configurations [none]
      [--suppress-dump-stat]          # specify not to update stat file with updated targets/queries/configurations on runtime [false]
  -d, [--daemonize]                   # daemonize Norikra server [false (foreground)]
  -p, [--pidfile=PIDFILE]             # pidfile path when daemonized [/var/run/norikra/norikra.pid]
                                      # Default: /var/run/norikra/norikra.pid
      [--outfile=OUTFILE]             # stdout redirect file when daemonized [${logdir}/norikra.out]
      [--micro]                       # development or testing (inbound:0, outbound:0, route:0, timer:0, rpc:2)
      [--small]                       # virtual or small scale servers (inbound:1, outbount:1, route:1, timer:1, rpc:2)
      [--middle]                      # rackmount servers (inbound:4, outbound:2, route:2, timer:2, rpc:4)
      [--large]                       # high performance servers (inbound: 6, outbound: 6, route:4, timer:4, rpc: 8)
      [--inbound-threads=N]           # number of threads for inbound data
      [--outbound-threads=N]          # number of threads for outbound data
      [--route-threads=N]             # number of threads for events routing for query execution
      [--timer-threads=N]             # number of threads for internal timers for query execution
      [--inbound-thread-capacity=N]
      [--outbound-thread-capacity=N]
      [--route-thread-capacity=N]
      [--timer-thread-capacity=N]
      [--rpc-threads=N]               # number of threads for rpc handlers
      [--web-threads=N]               # number of threads for WebUI handlers
  -l, [--logdir=LOGDIR]               # directory path of logfiles when daemonized [nil (console for foreground)]
      [--log-filesize=LOG-FILESIZE]   # log rotation size [10MB]
      [--log-backups=N]               # log rotation backups [10]
      [--more-quiet]                  # set loglevel as ERROR
  -q, [--quiet]                       # set loglevel as WARN
  -v, [--verbose]                     # set loglevel as DEBUG
      [--more-verbose]                # set loglevel as TRACE
  -h, [--help]                        # show this message
```