Skip to content

Doarakko/isucon13

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

isucon13

Manual

Rules

  • 1つの修正ごとにブランチを切ってベンチマークを実行する
  • ブランチ名はアルファベット・数字のみで記号は含めない
  • 以下を PR に添付する
    • ベンチマークの実行結果
    • スロークエリの解析結果
    • アクセスログの解析結果

Getting Started

GitHub issue の作成

各種手順を Todo リストにしたテンプレートを用意しているためそちらを利用する

ssh

各種コマンドは isucon ユーザーで SSH 接続する想定で作られています。 isucon ユーザーで SSH できるように、以下を参考に公開鍵を登録してください。 https://isucon-workshop.trap.show/text/chapter-2/2-EnterServerAndSomeSetting.html

local host

cd ~/.ssh
ssh-keygen -t ed25519 -f isucon13
cat ~/.ssh/isucon13.pub
<public key>

~/.ssh/config

Host isucon13
  HostName ec2-18-179-36-166.ap-northeast-1.compute.amazonaws.com
  User isucon
  IdentityFile ~/.ssh/isucon13.pub

remote host

echo "<public key>" >> ~/.ssh/authorized_keys

GitHub

https://isucon-workshop.trap.show/text/chapter-3/0-Github.html

秘伝のタレを配置

  • Makefile
    • 各種変数を更新
      • BIN_NAME
      • SERVICE_NAME
      • MYSQL_DB_NAME
    • ベンチ実行コマンドを更新
  • setup.sh
  • deploy.sh
    • 接続する SSH ユーザ名を更新
  • config/alp.yml

Setup tools

  • MySQL・nginx の設定ファイルをホームディレクトリ下にコピー
  • alp
  • pt-query-digest
  • pprof
ssh isucon13
make setup

MySQL・nginx の設定ファイルをGit管理

make setup 実行後に行うこと

git add mysql/* nginx/*
git commit -m "add MySQL and nginx config files"
git push origin main

MySQL のスロークエリのログを有効にする

https://isucon-workshop.trap.show/text/chapter-3/1-SlowQueryLog.html

nginx のアクセスログのフォーマットを変更する

https://isucon-workshop.trap.show/text/chapter-3/2-AccessLog.html

New Relic

cp /home/isucon/webapp/go/.env.example /home/isucon/webapp/go/.env
sudo systemctl restart isupipe-go.service

https://newrelic.com/jp/blog/how-to-relic/isucon-go-agent

pprof

https://isucon-workshop.trap.show/text/chapter-3/3-pprof.html

Usage

ssh

ssh isucon13

DB 接続

ssh isucon13
make mysql

ベンチマーク実行

ssh isucon13
make bench

スロークエリの解析

ssh isucon13
make slowq

アクセスログの解析

ssh isucon13
make alp

デプロイ

メインブランチ

make deploy

特定ブランチ

make deploy-<branch name>

以下がデプロイ対象で、リスタートも自動で行なっているため追加作業は不要

  • アプリケーション
  • nginx.conf
  • mysqld.cnf

サービスステータスの確認

ssh isucon13
make check-service-status

サービスログの確認

ssh isucon13
make watch-service-log

Hints

CPU 使用率・メモリ使用率等の確認

リアルタイムで更新されるため基本的に常に起動しておく

ssh isucon13
top

nginx のアクセスログから特定のリクエストを抽出

ssh isucon13
sudo grep -E "/api/user/.+/icon" /var/log/nginx/access.log
sudo zgrep -E "/api/user/.+/icon" /var/log/nginx/access.log.gz

References

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Contributors