-
Notifications
You must be signed in to change notification settings - Fork 2
ベンチマーク取得手順
YUKI "Piro" Hiroshi edited this page Jul 16, 2014
·
28 revisions
Groongaと比較する場合のベンチマーク取得手順。
- 192.168.0.10, 192.168.0.11の2台のコンピュータがあると仮定し、これらをDroongaクラスタにする。
- 比較用としてGroongaを192.168.0.10にインストールする。
- ベンチマークのクライアントは、192.168.0.12で実行する。
あらかじめ、Wikipediaのデータを取得しておく。
% cd ~/
% git clone https://github.com/droonga/wikipedia-search.git
% cd wikipedia-search
% bundle install
% rake data:convert:groonga:ja
192.168.0.10でのみ行う。
% sudo apt-get -y install software-properties-common
% sudo add-apt-repository -y universe
% sudo add-apt-repository -y ppa:groonga/ppa
% sudo apt-get update
% sudo apt-get -y install groonga
% mkdir -p $HOME/groonga/db/
% groonga -n $HOME/groonga/db/db quit
% cat ~/wikipedia-search/config/groonga/schema.grn | groonga $HOME/groonga/db/db
% cat ~/wikipedia-search/config/groonga/indexes.grn | groonga $HOME/groonga/db/db
% cat ~/wikipedia-search/data/groonga/ja-pages.grn | groonga $HOME/groonga/db/db
% groonga -p 10041 -d --protocol http $HOME/groonga/db/db
192.168.0.10と192.168.0.11で行う。
(on 192.168.0.10, 192.168.0.11)
% sudo apt-get update
% sudo apt-get -y upgrade
% sudo apt-get install -y ruby ruby-dev build-essential nodejs nodejs-legacy npm
% sudo gem install droonga-engine grn2drn drnbench
% sudo npm install -g droonga-http-server
% mkdir ~/droonga
% droonga-engine-catalog-generate --hosts=192.168.0.10,192.168.0.11 --output=~/droonga/catalog.json
(on 192.168.0.10)
% host=192.168.0.10
% export DROONGA_BASE_DIR=$HOME/droonga
% droonga-engine --host=$host \
--log-file=$DROONGA_BASE_DIR/droonga-engine.log \
--daemon \
--pid-file=$DROONGA_BASE_DIR/droonga-engine.pid
% env NODE_ENV=production \
droonga-http-server --port=10042 \
--receive-host-name=$host \
--droonga-engine-host-name=$host \
--daemon \
--pid-file=$DROONGA_BASE_DIR/droonga-http-server.pid
(on 192.168.0.11)
% host=192.168.0.11
...
% cat ~/wikipedia-search/config/groonga/schema.grn | grn2drn | droonga-request --host 192.169.0.10 --port 10031
% cat ~/wikipedia-search/config/groonga/indexes.grn | grn2drn | droonga-request --host 192.169.0.10 --port 10031
% cat ~/wikipedia-search/data/groonga/ja-pages.grn | grn2drn | droonga-request --host 192.169.0.10 --port 10031
192.168.0.12で行う。
% sudo apt-get update
% sudo apt-get -y upgrade
% sudo apt-get install -y ruby
% sudo gem install drnbench
よく検索されるページの一覧から、検索リクエストのパターンファイルを作成する。
% echo '{"wikiledia-ja-search-with-query":{"frequency":0.5,"method":"http","patterns":[' \
> patterns.json
% curl 'http://stats.grok.se/ja/top' | grep "a href" | \
sed -r -e 's/\&[^;]+;//g' \
-e 's/[:;]/ /g' \
-e 's;.+>([^<]+)</a>.*;{"path":"/d/select?query=\1\&table=Pages\&limit=50\&match_columns=title,text\&output_columns=snippet_html(title),snippet_html(text),categories,_key\&drilldown=categories\&drilldown_limits=50\&drilldown_sortby=-_nsubrecs"},;' \
-e 's/ /%20/g' \
>> patterns.json
% echo '{"path":"/d/select?table=Pages&limit=10"}]},"wikiledia-ja-search":{"frequency":0.5,"method":"http","patterns":[{"path":"/d/select?table=Pages&limit=50&output_columns=title,categories,_key&drilldown=categories&drilldown_limits=50&drilldown_sortby=-_nsubrecs"}]}}' \
>> patterns.json
192.168.0.12で行う。
Groongaのベンチマーク
% host=192.168.0.10
% drnbench-request-response \
--start-n-clients=1 \
--end-n-clients=200 \
--step=10 \
--duration=10 \
--wait=0.01 \
--mode=http \
--request-patterns-file=$PWD/patterns.json \
--default-host=$host \
--default-port=10041 \
--output-path=$PWD/groonga-result.csv
Droongaのベンチマーク
% host=192.168.0.10
% drnbench-request-response \
--start-n-clients=1 \
--end-n-clients=200 \
--step=10 \
--duration=10 \
--wait=0.01 \
--mode=http \
--request-patterns-file=$PWD/patterns.json \
--default-host=$host \
--default-port=10042 \
--output-path=$PWD/droonga-result.csv