こんにちは。matsです。
ちょうどAerospikeを増強する機会があったので、インストールについてまとめてみました。
基本的にはこちらのリファレンスを参考にしています。
サーバの起動
下記の構成で立ち上げます。
起動したら次のコマンドで拡張ネットワーキングが有効になっていることを確認します。
「driver: ixgbevf」とあれば大丈夫です。
# ethtool -i eth0 driver: ixgbevf version: 2.14.2+amzn firmware-version: N/A bus-info: 0000:00:03.0 supports-statistics: yes supports-test: yes supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no
Aerospikeのインストール
rpmパッケージを落としてきてインストールするだけです。楽ちん。
# wget --output-document=aerospike.tgz http://www.aerospike.com/download/server/3.5.14/artifact/el6 # tar -xzvf aerospike.tgz # cd aerospike-server-community-*-el6 # ./asinstall
ネットワーク(NIC)の最適化
Amazon Linux (HVM)の各NICは、毎秒約250Kパケットを処理することができますが、より高いパフォーマンスを求める場合は、以下のどちらかの対応が必要な様です。
(これは一つのNICから受けるパケットは一つのCPUで受けて処理する仕様に起因しているようです)
ENI(仮想NIC)を追加する
NICを追加し、それぞれに対応するCPUを分けることで対応します。
が、結構設定が面倒くさいので、私のオススメは次のやつです。
RPSを使う
Linux kernelの2.6.35以降で利用できる機能にRPSというものがあります。
詳細な仕様は私も分かっていないのですが、簡単な設定をすることで特定のNICのパケットを処理するCPUの個数を指定することができる様です。
設定方法は下記コマンドになります。
echo ffffffff > /sys/class/net/eth0/queues/rx-0/rps_cpus
AMIに固めるときなどは /etc/rc.local の最後に書いています。
Ephemeral Diskのアンマウント
Aerospikeはファイルシステムを介さず、直接ブロックデバイスに書き込むのでマウントは不要です。
EC2ではデフォルトでマウントされてしまうので外しておきます。
# umount /media/ephemeral0 # sed -i -e '/ephemeral0/d' /etc/fstab
Aerospikeの起動
あとは起動するだけです。
ちなみに、自動起動は設定していません。(サーバが落ちた時などは予期しないことが起こっている事が多いので)
# service aerospike start
おわり