2018年12月4日火曜日

ConoHaの上でひたすらMySQLをビルドする簡単なお仕事 in 2018


一昨年去年 とひたすらMySQLをビルドしてきましたが、今年もやっぱりMySQLをビルドします。
今年はもうサポートの切れたMySQL 5.0, 5.1のことは忘れることにして、5.5, 5.6, 5.7, 8.0をそれぞれビルドしていきたいと思います。
ではまず、普段使いと同じサイズの 1GBプラン のCentOS 7.5なインスタンスをコントロールパネルからポチって起動します。
今年はビルドに必要そうなものは先にインストールすることにしました。
$ sudo yum install -y cmake gcc gcc-c++ ncurses-devel openssl-devel
ではまずは MySQL 5.5.62 からいきます。
$ wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.62.tar.gz
$ tar xf mysql-5.5.62.tar.gz
$ cd mysql-5.5.62/
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql/5.5.62
$ time make
..
real    6m36.723s
user    5m56.500s
sys     0m39.155s

$ sudo make install
はいさくさくとMySQL 5.6.42です。
$ wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.42.tar.gz
$ tar xf mysql-5.6.42.tar.gz
$ cd mysql-5.6.42/
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql/5.6.42
$ time make
..
real    20m41.700s
user    18m43.041s
sys     1m51.097s
5.6のビルドが思ったより時間がかかっていたので、もう1つインスタンスを立ち上げて5.7.24のビルドを始めました。
$ wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz
$ tar xf mysql-boost-5.7.24.tar.gz
$ cd mysql-5.7.24/
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql/5.7.24 -DWITH_BOOST=./boost
$ time make
..
real    48m57.496s
user    41m11.879s
sys     4m41.679s
せっかちなので更にもう1つ立ち上げて8.0.13のビルドを始めます()
$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.13.tar.gz
$ tar xf mysql-boost-8.0.13.tar.gz
$ cd mysql-8.0.13/
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql/8.0.13 -DWITH_BOOST=./boost
$ time make
..
real    91m43.661s
user    86m0.743s
sys     10m45.967s
だいぶ厳しくなってはきましたが、取り敢えず有限時間では終わるようです(ただし、他のプロセスはほとんど終了させないとダメな場合も)
ものは試し、ConoHaのメモリ1GBプランだと2CPU使えるので、 time make -j2 バージョンも試してみましたが、5.7と8.0はOOMに殺されてビルドできず…。
次のプランの2GB/3CPUでも3パラだとビルドできずに2パラでなんとか、でした。
もうこうなったら最強のインスタンスを試すしかないかと思ったんですが、
だったので、代わりに c3.8xlarge なEC2で試したみた結果。
メモリ CPU指定 5.5.62 5.6.42 5.7.24 8.0.13
1G 1 6m36.723s 20m41.700s 48m57.496s 91m43.661s
1G 2 3m12.228s 9m52.848s N/A N/A
2G 2 未計測 未計測 24m13.637s 42m55.905s
2G 3 2m19.953s 7m7.850s N/A N/A
60G(*) 32(*) 0m35.651s 1m33.203s 3m56.580s 7m8.324s
(*) よく見たら、ストレージがマグネティックだった。ConoHaはSSD。
強いインスタンスは正義ですね…。
ビルド後のサイズはこんなもので、やっぱり年々大きくなってはきている。ストレージのサイズ的にもやっぱり強いインスタンスが正義……。
$ du -sh * ### ビルドのディレクトリー
838M    mysql-5.5.62
2.3G    mysql-5.6.42
5.3G    mysql-5.7.24
8.2G    mysql-8.0.13

$ du -sh /opt/mysql/* ### インストール先のディレクトリー
341M    /opt/mysql/5.5.62
998M    /opt/mysql/5.6.42
1.9G    /opt/mysql/5.7.24
1.6G    /opt/mysql/8.0.13

明日の ConoHa Advent Calendar 2018misato8310 さん、
明日の MySQL Casual Advent Calendar 2018 はまだ空いているのでまた俺かも知れませんし俺でない誰かかも知れません。

0 件のコメント :

コメントを投稿