仕事やプライベートで調べたことのメモ書きなど(@札幌)

仕事やプライベートで調べたこと、興味ある事のメモ書きです。2016年4月から札幌で働いてます。※このブログは個人によるもので、団体を代表するものではありません。

EC2上のAerospikeでycsbを実行(3) クラスタ構成にチャレンジ

さて、前回の実行で、EC2でAerospikeを簡単に構成できることがわかったので、クラスタ構成にもチャレンジしてみます。
無料範囲でやりたいので手早く!
takumats.hatenablog.com

ちなみに、データを削除するときは、以下のコマンド。データが多い場合はすべて削除されるのに時間がかかるようです。
全て削除される前に、ycsbのloadを実行すると、キーがすでに存在しているとかのエラーになるので要注意です。

asinfo -v "set-config:context=namespace;id=ycsb;set=usertable;set-delete=true;"

参考
www.aerospike.com

データが削除されたかを確認するには、データベースノードで「aql」で入った後に「show sets」で確認します。すると以下の感じで表示されます。

+-----------+------------------+----------------+-------------------+----------------+---------+-------------+------------+
| n_objects | disable-eviction | set-enable-xdr | stop-writes-count | n-bytes-memory | ns_name | set_name    | set-delete |
+-----------+------------------+----------------+-------------------+----------------+---------+-------------+------------+
| 345063    | "false"          | "use-default"  | 0                 | 0              | "ycsb"  | "usertable" | "false"    |
+-----------+------------------+----------------+-------------------+----------------+---------+-------------+------------+
1 row in set (0.000 secs)

今回はクラスタ構成にチャレンジしました。設定は簡単。
設定ファイルに「mesh-seed-address-port」のところで自分以外のサーバーのIPアドレスを追加するだけみたい。

それで複数のサーバーでサービスを起動させると、もともとデータが入っていると、勝手に同期が始まるようです。
クラスタ構成は、asadmコマンドで確認できます。本コマンドでは、ノードごとのマスター件数などもわかります。
Documentation | Aerospike

[ec2-user@ip-xx-xx-xx-xx YCSB]$ asadm -e info -h xx.xx.xx.aa
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Network Information~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                           Node               Node                  Ip       Build   Cluster            Cluster     Cluster         Principal   Client     Uptime
                                              .                 Id                   .           .      Size                Key   Integrity                 .    Conns          .
ip-xx-xx-xx-aa.us-west-1.compute.internal:3000   *BB9AC4AD410DF06   xx.xx.xx.aa:3000   C-3.8.2.3         3   8FDC01A429213D62   True        BB9AC4AD410DF06        5   00:22:13
ip-xx-xx-xx-bb.us-west-1.compute.internal:3000    BB98CE423192806   xx.xx.xx.bb:3000   C-3.8.2.3         3   8FDC01A429213D62   True        BB9AC4AD410DF06        5   00:16:49
ip-xx-xx-xx-cc.us-west-1.compute.internal:3000    BB980F34E0EDF06   xx.xx.xx.cc:3000   C-3.8.2.3         3   8FDC01A429213D62   True        BB9AC4AD410DF06        5   00:16:38
Number of rows: 3

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Namespace Information~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Namespace                                              Node   Avail%   Evictions      Master     Replica     Repl     Stop     Pending         Disk    Disk     HWM          Mem     Mem    HWM      Stop
        .                                                 .        .           .     Objects     Objects   Factor   Writes    Migrates         Used   Used%   Disk%         Used   Used%   Mem%   Writes%
        .                                                 .        .           .           .           .        .        .   (tx%,rx%)            .       .       .            .       .      .         .
ycsb        ip-xx-xx-xx-aa.us-west-1.compute.internal:3000   90               0   322.056 K   341.691 K   2        false    (0,0)       972.286 MB   10      50       40.512 MB   4       60     90
ycsb        ip-xx-xx-xx-bb.us-west-1.compute.internal:3000    90               0   337.478 K   336.959 K   2        false    (0,0)       987.945 MB   10      50       41.164 MB   5       60     90
ycsb        ip-xx-xx-xx-cc.us-west-1.compute.internal:3000   90               0   340.466 K   321.350 K   2        false    (0,0)       969.457 MB   10      50       40.394 MB   1       60     90
ycsb                                                                           0     1.000 M     1.000 M                     (0,0)         2.861 GB                   122.070 MB
Number of rows: 4

したがって、前述のasinfoでデータを消すオペレーションを実行すると、ここに表示されるオブジェクト数が0になります。

で、ちなみにパフォーマンスはどうなったかというと、さっくり、以下のようなかんじでした。

ノード数スループット(load)スループット(run)
1Throughput(ops/sec), 8781.173164734808Throughput(ops/sec), 3114.096754847738
2Throughput(ops/sec), 5840.405090497077Throughput(ops/sec), 5956.125094127134
3Throughput(ops/sec), 5683.335890834484Throughput(ops/sec), 5758.298796657827
loadで見ると1台よりも2台の方が悪いです。これはおそらく、2台になると、レプリカがつくられるからなのかなぁ、と思っています。