mroongaでクエリを投げる並列数をあげていくと、レスポンスが悪化する件
使用しているデータは http://blog.livedoor.jp/staff/ の記事データです。1500件ほどあります
環境は EC2 cc2.8xlarge 8コア 32コア
MySQL 5.6.15。オラクル公式MySQL rpmを使用
mroonga 4.0
groonga 4.0
mroongaのビルドは http://blog.nomadscafe.jp/2013/12/vagrantprovisionermroongarpm---mysql-casual-advent-calendar-2013.html この方法でビルドしたもの
セットアップ手順
wget http://nomadscafe.jp/mroonga/mroonga-rpm.tar
wget http://nomadscafe.jp/mroonga/my.cnf
wget http://nomadscafe.jp/mroonga/bench.pl
wget http://nomadscafe.jp/mroonga/blog30.sql
tar xf mroonga-rpm.tar
rpm -Uvh mroonga-rpm/MySQL-shared-compat*.rpm
cp my.cnf /etc/my.cnf
rpm -Uvh mroonga-rpm/MySQL-client-5*.rpm mroonga-rpm/MySQL-devel-5*.rpm \
mroonga-rpm/MySQL-server-5*.rpm mroonga-rpm/MySQL-shared-5*.rpm
/etc/init.d/mysql start
export MYSQL_PWD=$(tail -2 /root/.mysql_secret | awk -F ': ' '{print $2}')
mysqladmin -uroot password ""
export MYSQL_PWD=""
mysql -uroot -e 'update user SET Password="" where User="root"' mysql
rpm -Uvh mroonga-rpm/groonga*.rpm mroonga-rpm/mecab*.rpm mroonga-rpm/mysql56-mroonga*.rpm
yum -y install perl-DBD-mysql perl-Time-HiRes
mysqladmin create article_index
cat blog30.sql | mysql article_index
ベンチマーク実行
perl bench.pl 並列数
最後にかかった時間がでます
結果
# perl bench.pl 1
done: 11.0142660140991
# perl bench.pl 2
done: 14.6641170978546
# perl bench.pl 3
done: 12.7114961147308
# perl bench.pl 4
done: 13.4998869895935
# perl bench.pl 5
done: 17.3568599224091
# perl bench.pl 6
done: 22.2315490245819
# perl bench.pl 7
done: 30.3295059204102
# perl bench.pl 8
done: 43.5253119468689
# perl bench.pl 16
done: 126.63294506073
並列数3~4を超えると線形に悪くなっていく
Enable Transparent Huge Pages
Disable Transparent Huge Pages