LoginSignup
12
1

More than 5 years have passed since last update.

ラズパイでISUCON

Posted at

ISUCON (Iikanjini Speedup contest)

  • 与えられたWebアプリを一番速くした人が勝ち
  • 2,3人1チーム
  • 8時間

詳しくは、公式ブログ

なぜラズパイでISUCONか

  • ラズパイはずっと欲しかったから
  • 夜中にAmazon見ててぽちったから
  • 前回参加したISUCONは諸事情で1,2時間しか参加できなかったから
  • ラズパイはずっと欲しかったから

目的

  • ラズパイを触る
  • ラズパイでISUCONができるようにする

ラズパイの購入に関して注意

  • 意外と販売元によって値段や付属品が違うのでちゃんと見たほうが良い。
  • Physical Computing Labが良さそう

ラズパイのセットアップ

OSダウンロード

今回はサーバ用途なので、ラズパイ公式サイトのダウンロードページより、Raspbian Stretch LiteをDLしました。

Micro SDにOSの書き込み

  • Macの場合
    • ddコマンド 例sudo dd if=2017-11-29-raspbian-jessie-lite.img of=/dev/sdb bs=4m
  • Windowsの場合

接続

図1.png

起動

image.png
簡単。

ラズパイの設定

  • 無線接続設定 - 諸事情により有線でつなげなかった
  • CtrlとCapsの入れ替え
  • 日本語化
  • apt update, apt upgrade, apt dist-upgrade

全て終わったら一度SDカードのイメージのバックアップを取っておくと良いかと思います。

ISUCON 7予選環境の構築

ISUCON公式のgithubがあるみたいなので、その予選問題7をクローンしました。
後は基本的にREADME通りやれば、構築できます。以下紹介する部分だけラズパイ用に変える必要がありました。

  • パッケージ名
    • libmysqlclient-devをdefault-libmysqlclient-devに変更
  • GoのビルドはARM用に
    • xbuild/go-install –f 1.9 /home/isucon/local/go linux armv6l
  • 初期データの投入に関して
    • ラズパイのメモリーが1Gのため初期データを投入しようとするとMySQLがout of memoryを吐きます。どうしようか迷ったのですが、初期データファイルを分割して投入して解決しました。
$ cd isubata/bench
$ gunzip isucon7q-initial-dataset.sql.gz
$ cat isucon7q-initial-dataset.sql | tr ";" "\n" | tail -n +2 | head -n -1 > isucon7q-initial-dataset2.sql
$ sed "s/$/;/g" isucon7q-initial-dataset2.sql > isucon7q-initial-dataset3.sql
$ split -l 10 isucon7q-initial-dataset3.sql init_data.
$ for sql in `ls init_data.*`; do echo $sql; sudo mysql --default-character-set=utf8 isubata < $sql; done

もうやっつけ感。

あとは、webサーバーを起動して、ベンチマークを取れば...こけます!
ここからチューニング作業ですが、今回は時間の関係上ここまでで!

12
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
1