SPARQL Query Benchmarker調査

提供:TogoWiki

移動: 案内, 検索

指定したSPARQLエンドポイントに対して与えられたクエリを発行し、その結果として得られる実行時間などの統計情報を取得するツール。

特徴

今回は最新のVersion 2.0.0を試用。特徴は以下の通り。

  • 実装はJavaでAPIが公開されているので、ライブラリを利用して独自ツールを開発も可能
  • レスポンスタイムを測ることや、安定性を試すことなど幾つかの目的毎にコマンドラインツールが提供されている
  • 予め全てのクエリを用意しておくだけでなく、変数を与えて実際のクエリ発行時にランダムに値を振ることが出来る
  • インストールは.zipファイルをダウンロードして展開するだけ

コマンドラインツール

用意されているコマンドラインツールは以下の5つ

  • benchmark --- 特定のクエリセットを与えられた回数だけ対象エンドポイントに発行し、最長、最短、平均レスポンスタイムを測る
  • soak --- 特定のクエリセットを一定時間あるいは一定回数発行し続ける
  • smoke --- 特定のクエリセットについて各クエリの処理結果の正否をみる
  • stress --- 特定のクエリセットについて、与えられた上限スレッド数か時間になるまで同時に発行するクエリ数を与えられたスレッド数ずつ増やしていく
  • operations --- クエリセットに記述できる様々な演算子に関するヘルプを表示する

詳細はこちら

試用

そこで、これまで 利用者:Yayamamo が試していたSPARQL1.1対応テストを本ツールを用いて試した。

これに適したコマンドラインツールは smoke で、以下の要領で実行。対象エンドポイントの実装はOpenRDF Sesame Ver. 2.7.12

  • LearningSPARQL 2nd Ed.サンプルクエリから取得したクエリのうち、各.rqファイルのパスを、一行一パスで記述した入力ファイルを用意する。
  • $ ./smoke -q <endpoint_URL> -m <input.txt>を実行

得られるデータの最後は以下の様になっている。

Smoke Test Summary
-----------------

Result: Failure
Total Operations Run: 220

Total Errors: 8
Errors by Category: 
  HTTP Server Error (5xx): 1 error(s)
  HTTP Client Error (4xx): 7 error(s)

Start Time: 19/06/2014 03:37:56 +0000
End Time: 19/06/2014 03:39:56 +0000
Total Runtime: 1.9999572561166665 minutes