読者です 読者をやめる 読者になる 読者になる

MySQL 5.7 を t2.micro でもビルドできた!

mysql

 ひとつ前の日記で、「MySQL 5.7 は、ビルドのために大量にメモリを要求するので、AWS Red Hat の t2.micro、すなわちメモリ 1GBではビルドできない」という趣旨のことを書きました。その時点での対応策として、t2.medium というメモリ4GBの環境を利用することで、ビルドに成功しました。

 その後、「t2.micro は、デフォルトではswapファイルの設定が無効になっているよ」と、詳しい方から教えていただき、設定の後に t2.micro でも MySQL 5.7 をビルドできたので、ここに紹介します。

t2.micro でMySQL 5.7をビルドするために必要な設定

 以下の手順でswapファイルを作成し、使用可能な状態にします。ここでは 1GBの領域を作成しました。

# dd if=/dev/zero of=/myswapfile bs=1M count=1024
# chmod 600 /myswapfile
# mkswap /myswapfile
# swapon /myswapfile 

 swapファイルの状態を確認するコマンドは、

# swapon -s

 なので、作成前と作成後にどんな状態になっているかを確認すると良いでしょう。
 (ビルド中に、実際の使用量を確認するのにも使います)

 これだけです。

ビルド作業

 あとは、ひとつ前の日記で紹介した手順と同じです。
make中に swap の使用状況を見ていると、item_geofunc.cc.o 関連の処理のときに最大 600MB くらいまで使用されているのを確認できました。swap領域を含めて、概ね 2GB のメモリを積んでいれば、MySQL 5.7 をビルドできると考えて良さそうです(1GB+512MBなメモリ環境ではビミョー、たぶんアウト)。

 ただしベラボウに時間がかかります。
最初の難関である「item_geofunc.cc.o」のコンパイルまでが 約10分。無事に通過してくれて、しめしめと思っていたが、そこから先も長かった。結局処理が終わったのは、開始から75分後。
データベースの initialize をして接続確認まで、動作することを一応確認はしたけど、なんども実施するにはちょっとツラいくらいの時間ですね。

=====
追記:
 またまた詳しい人から情報を頂戴しました。
t2.micro で時間がかかるの原因のひとつとして推測できるのが、CPUクレジットとのこと。以下のブログ参照。
aws.typepad.com
=====