Skip to content

gosagawa/isucon

Repository files navigation

概要

isucon用の秘伝のMakefileとそれをDockerで確認できる環境です。 Makefileの動作確認や、各種ツールの利用確認に役立ててください。

事前準備

slackcatの使用準備

slackcat用のトークンを準備します。slackcatの利用が初めてであれば、http://slackcat.chat/ の右上、Add to Slackからxoxpで始まるトークンを取得しておきます。

検証用Dockerの起動

以下を実行し、コンテナにsshログインできる事を確認してください。

docker-compose build
docker-compose up -d
make ssh

使用方法

以下、一通りの手順を実行後にMakefileで定義された内容を実施してください。

make setup

一番最初に実行するツール類の設定です。

以下のアプリをインストールします。

  • percona-toolkit
  • kataribe
  • myprofiler
  • slackcat
  • goose

slackcatインストール時には以下を聞かれるので入力してください。

nickname for team:t (複数チームで使わないのであればなんでも良いが何か入れる必要あり)
token issued:xoxp-XXXXXXX(事前準備で準備したslackcatのトークン)

その後.slackcatファイルを変更して、default_channnelに投稿したいチャンネルを設定する。

DBの接続情報の修正

  • MakefileのDB接続設定を修正
  • goose用のdb/dbconf.ymlの設定修正

nginxの設定

ログフォーマットを以下に修正

log_format with_time '$remote_addr - $remote_user [$time_local] '
                     '"$request" $status $body_bytes_sent '
                     '"$http_referer" "$http_user_agent" $request_time';
access_log /var/log/nginx/access.log with_time;

pprofの設定

このレポジトリ内では追加ずみですが、実際の競技ではpprofの設定を追加します。

  • importに追加
       _ "net/http/pprof"
  • main関数に追加
       go func() {
               log.Println(http.ListenAndServe("localhost:6060", nil))
       }()

TODOの処理

Makeファイル内でTODOとなっている部分は個別設定が必要であるはずなので、適宜設定を行ってください。このレポジトリを試すだけであれば設定不要です。

謝辞

このレポジトリ、およびMakefileを作るにあたり以下の記事とMakefileを参考にさせていただいています。

ISUCON9予選1日目で最高スコアを出しました

Makefile

About

isuconの準備用レポジトリ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published