いろいろチューニングしてパフォーマンスを競うバトルイベント「チューニンガソン」に参加して来ました。
第5弾! いろいろチューニングしてパフォーマンスを競うバトルイベント「チューニンガソン」1月19日(土) 開催! #tuningathon on Zusaar
今回のお題はmysqlのチューニングでした。
とりあえずデフォルトでの計測
$ python tgbench_mysql.py 127.0.0.1 0.000252962112427 33.3661158085 43.4254088402 78.2620458603 119.059832811 159.897188902 159.897264957
mysqlがyumではいってるmysql5.5だったので、まずはそれの入れ替えを実行
せっかくイベントなので触ったことがないやつということでMariaDBを選択
yumで入れるために repos.d.conf にMariaDBのレポジトリを記載
https://kb.askmonty.org/en/installing-mariadb-with-yum/
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos5-x86 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
これでデフォルトの半分ぐらいになった
$ python tgbench_mysql.py 127.0.0.1 0.000237941741943 9.34440684319 18.2691218853 46.2849988937 53.2622439861 61.3170080185 61.3170838356
mysqlのconfの設定を変更
my.conf.d/server.conf [mysqld] sort_buffer_size=128MB read_rnd_buffer_size=128MB join_buffer_size=128MB read_buffer_size=512MB key_buffer_size=512MB [mysqld-5.5] innodb_buffer_pool_size = 2048MB
$ python tgbench_mysql.py 127.0.0.1 0.000234127044678 4.9201271534 6.00594115257 11.8122889996 17.1846840382 22.6857671738 22.6858429909
my.confの innodb_buffer_pool_sizeが2G以上にできなくてなやむ
最新のMariaDB10.0-alphaをrpmでインストール
MariaDB-10.0.0-centos6-x86_64-client.rpm MariaDB-10.0.0-centos6-x86_64-common.rpm MariaDB-10.0.0-centos6-x86_64-compat.rpm MariaDB-10.0.0-centos6-x86_64-devel.rpm MariaDB-10.0.0-centos6-x86_64-server.rpm MariaDB-10.0.0-centos6-x86_64-shared.rpm MariaDB-10.0.0-centos6-x86_64-test.rpm
$ python tgbench_mysql.py 127.0.0.1 0.00020694732666 5.1222679615 12.0512940884 16.4838340282 22.7828249931 29.5662739277 29.5663368702
劣化・・・
MariaDB10.0系は捨てることに
MariaDBが32bitがはいってたので、64bit版に変更
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
my.cnfを設定
[mysqld] sort_buffer_size=256MB read_rnd_buffer_size=2GB join_buffer_size=256MB [mysqld-5.5] innodb_buffer_pool_size = 8G innodb_additional_mem_pool_size = 1G #innodb_locks_unsafe_for_binlog=1 innodb_flush_neighbor_pages = 1 innodb_read_ahead = 1
$ python tgbench_mysql.py 127.0.0.1 0.000209093093872 0.9142370224 1.89475703239 6.26575398445 10.3098518848 14.9117879868 14.9118618965
conf周りは、ある程度いじったので、EXPLAINを実行しつつ、INDEXを調整
複数貼られていたINDEXをpkey以外削除
$ python tgbench_mysql.py 127.0.0.1 0.000207901000977 1.09784293175 2.28688597679 3.59567093849 7.47712683678 11.6268959045 11.626958847
この辺りで、中間発表で暫定10位だった
もろもろINDEXを追加
$ python tgbench_mysql.py 127.0.0.1 0.000213861465454 0.840955018997 1.76738786697 2.78217506409 6.53422188759 10.4379339218 10.4380249977
ここで、タイムアップ
最終結果は、20位だった模様。
感想
5時間あっという間でしたが、楽しくチューニングできた。
最近、ゴリゴリのMySQLのチューニングをしてなくて、
なかなか要領がつかめなくて苦労した。
MariaDBをはじめて使ってみたけど、
ふつうにyumで入れられるし、タイミングみて実践でも使ってみたいなと思った。
なかなか10秒の壁が超えられず、
それを超えた方々がTOP10にランクインしていたので
もう少しのところだったので残念。
ちなみにトップは、6秒台でした。
運営のゼロスタのみなさん、スポンサーのVOYAGEさん、gihyoさん、AWSさん、
ありがとうございました!
twitterのログ
チューニンガソンに来た! @ 株式会社VOYAGE GROUPにタッチ! tou.ch/Ja51wj
— Takumi KANZAKI (@tknzk) January 19, 2013
集まりわるい・・・ #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
@helooooairi ww そうなんですね (´・ω・`)
— Takumi KANZAKI (@tknzk) January 19, 2013
おれ、チューニンガソンがおわったら、髭刈るんだ・・
— Takumi KANZAKI (@tknzk) January 19, 2013
ハッシュタグつけてもtwitterで検索避け(aka スパム扱い)されてるので、勉強会とかでいつも悲しい感じなる
— Takumi KANZAKI (@tknzk) January 19, 2013
とりあえず、素のままで計測スクリプト流した #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
とりあえず、素の状態の半分ぐらいにはなった #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
monster gkgkしようとしたら、プシュッたタイミングでこぼしちゃった(´・ω・`)
— Takumi KANZAKI (@tknzk) January 19, 2013
一時間たって、それほどスコア伸びないので yumで入れ変えたやつすてるか #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
64bit版にいれかえた そこそこ伸びたけど超えられない壁がありそう #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
14.9118618965 #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
さっき11sec 台でたんだけど、なんだったんだ #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
11.4667778015 #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
dumpの戻しが終わらない #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
10sec きれないな #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
いったん、凍結 計測に委ねる #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
ふー おわったー 10位以内にはいってるといいな #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
けっかはっぴょー #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
いやー 10位以内にはいれなかったな・・ #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
どうやら、20位だったもよう #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
はー 疲れたな #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013
ステマ貰った‼ instagr.am/p/UqMMeuPu4x/
— Takumi KANZAKI (@tknzk) January 19, 2013
さてと、ブログ書くまでがチューニンガソンということで、ブログを書こうっと。 #tuningathon
— Takumi KANZAKI (@tknzk) January 19, 2013