LoginSignup
1
1

More than 5 years have passed since last update.

ISUCON5 予選 part1

Posted at

研究室有志によるISUCON勉強会 ISUCON部 の第1回資料です。

vagrant を使った環境構築

試しに ISUCON5 の予選を再現した環境を vagrant で動かしてみる。

競技用ウェブアプリの環境構築

git clone https://github.com/gky360/vagrant-isucon.git
cd vagrant-isucon/isucon5-qualifier
vagrant up image

http://192.168.33.10 が見られたらここまではok。

ベンチマーク用の環境構築

vagrant up bench
vagrant ssh bench
sudo su -l isucon

# 上で立てた競技用ウェブアプリに対してベンチマークを走らせる
./bench.sh 192.168.33.10

何もしない状態でとりあえず 271.2 点取れました。
ちなみに、ISUCON 5 本戦出場者の得点はみんな5桁とか6桁とかです。
http://isucon.net/archives/48475110.html

言語を golang に切り替え

基本的に以降のコマンドは vagrant ssh image した中で。

# 環境構築 (optional)
sudo apt-get install -y zsh vim tmux htop dstat

# isucon ユーザに変える
sudo su - isucon

# systemctl スクリプトの確認
ls -l /etc/systemd/system/

# 80 と 8080 で何か動いている
sudo lsof -i :8080

# 実はこの vagrant はデフォルトで ruby 版の実装が動いている
systemctl status isuxi.ruby.service

# ruby 版webapp停止
systemctl stop isuxi.ruby.service
systemctl disable isuxi.ruby.service
sudo lsof -i :8080

# golang 用環境設定
echo "export PATH=/home/isucon/.local/go/bin:$PATH" >> ~/.bashrc
echo "export GOROOT=/home/isucon/.local/go" >> ~/.bashrc
echo "export GOPATH=/home/isucon/webapp/go" >> ~/.bashrc
exec -l $SHELL

# go build
cd ~/webapp/go
go build app.go
go run app.go

# golang のサーバに切り替え
systemctl start isuxi.go.service
systemctl status isuxi.go.service
sudo lsof -i :8080

なにも log がでなくて不安なので、出るようにする。
https://github.com/gorilla/mux の Middleware のところを参考に loggingMiddleware を足す。

1
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
1
1