センサーデータ蓄積を想定したKVS性能検証・観点と方法

2014年12月3日(水)
倉又裕輔

第1回では、センサーデータの蓄積に適したデータストアとして、OSSの分散KVSであるokuyamaとRiakの2つをご紹介しました。高速なデータアクセスを得意とする分散KVSではありますが、実際にどの程度の性能が出せるのか、疑問をお持ちの方も多いのではないでしょうか?

そこで、センサーデータ蓄積において性能上特に重要となる書き込み性能に注目し、okuyamaとRiakの2つを対象として性能検証を実施しました。本連載の第2回と第3回では、その性能検証についてご説明していきます。第2回である今回は、KVSの書き込み性能を検証するに際しての観点と、実施した検証の概要についてご説明します。

センサーデータ蓄積で重要な「同時書き込み性能」

第1回でご説明した通り、IoT(Internet of Things)では多数のセンサーからKVSへ向けて高頻度にデータが送信されます。この時KVSは大量件数のデータを同時に受信することになり、非常に高い書き込み負荷がかかります。これはセンサーデータ蓄積のなかでも、高性能が求められる処理の一つです。そこで本検証では、多数の書き込み要求をパラレルに処理していく「同時書き込み性能」を検証の観点としました。

センサーからの大量データ受信

図1:センサーからの大量データ受信(クリックで拡大)

KVSへの書き込み負荷が高い場合、通常はクラスタ構成をとることで書き込み処理を並列化し、同時書き込み性能を高めます。本検証では、書き込み負荷に応じたクラスタ台数を見積もるための基礎データ取得を目的として、クラスタ構成での同時書き込み性能を計測しました。
同時書き込み性能の評価指標としては、スループットとレイテンシの2つが挙げられます。

スループット

スループットとは、単位時間当たりのデータ書き込み件数(書き込み速度)です。本検証ではセンサーからKVSへの1秒当たりのデータ書き込み件数を計測しました(図2)。スループットの数値が大きいほど大量データを高速に書き込むことができ、高性能といえます。

書き込み処理のスループット

図2:書き込み処理のスループット(クリックで拡大)

レイテンシ

レイテンシとは、データ書き込み1件当たりにかかった処理時間です。通常レイテンシは、計測のタイミングによってネットワークやCPU・ディスクといった機器の負荷の影響で変動します。そのため、複数回計測して算出した平均値や、値の分布を指標とするのが一般的です。本検証では、センサーからKVSへ1件のデータを送信してから、データの書き込み完了通知をセンサーが受け取るまでの時間を計測し、その平均値を指標としました(図3)。こちらは数値が小さいほど高性能ということになります。

書き込み処理のレイテンシ

図3:書き込み処理のレイテンシ(クリックで拡大)

本検証では、KVSへの同時アクセス数(図2と図3のセンサー台数)を徐々に増加させていき、スループットのピーク性能(性能の上限値)とレイテンシを測定しました。これらを基礎データとすることで、クラスタ台数を見積もることができると考えました。

データ保存先による性能特性の違い

KVSの多くはデータアクセスを高速化するため、データの保存先としてディスクだけでなくメモリも積極的に利用しています。今回検証対象としたokuyamaとRiakでは、データの保存先を次の3パターンから選択できます。

データ保存先のパターンと性能のトレードオフ

図4:データ保存先のパターンと性能のトレードオフ(クリックで拡大)

  1. ディスク保存
    KeyとValueの両方をHDDやSSDへ保存します。
    メモリと比較して、HDDやSSDは大容量を確保しやすいため、3パターンの中では大量データの蓄積に最も適しています。その反面、メモリと比較してHDDやSSDはアクセス速度が低速であるため、3パターンの中では書き込み速度が最も遅くなりやすい傾向があります。
  2. メモリ・ディスク併用
    Keyをメモリ上に保存し、ValueをHDDやSSDへ保存します。
    データ保存容量に関してはディスク保存パターンより小さくなりますが、センサーデータでは通常KeyのサイズはValueのサイズに比べて十分小さいため、大量のデータを蓄積することができます。アクセス速度の面では、KeyがValueの保存場所の情報を持っているため、Keyをメモリへ保存することでValueへの高速なアクセスが可能となります。
  3. メモリ保存
    KeyとValueの両方をメモリ上へ保存します。
    HDDやSSDと比較してメモリはアクセス速度が速いため、3パターンの中で最もデータ読み書きが高速です。しかし大容量のメモリを確保するのはコストが高くなるため、現実的には大量データ蓄積への利用は困難です。

これらの3パターンは、図4に示すようにデータ保存容量と書き込み速度に関してトレードオフの関係があります。センサーデータ蓄積に利用する場合には、大量データを蓄積できることが要件となるため、ディスク保存パターンまたはメモリ・ディスク併用パターンを選択するのが現実的です。そこで今回の検証では、ディスク保存パターンとメモリ・ディスク併用パターンの両方に対して性能測定を実施しました。

日立ソリューションズ
入社以来3年間、金融系SEとしてシステム基盤の設計・構築を担当しました。現在はオープンソース技術開発センタに所属し、OSSのNoSQLについて調査・検証に取り組んでいます。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています