読者です 読者をやめる 読者になる 読者になる

AWSでAerospikeをインストールする

aerospike aws 技術

こんにちは。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パッケージを落としてきてインストールするだけです。楽ちん。

(ここまで楽ならyumリポジトリあってもいいのに。。)

# 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

 

 

おわり