ISUCON9 - チーム「牡蠣入れどきなう」
メンバー
pinkumohikan.icon okashoi.icon msm2.icon
概要
日程: 2019年9月8日(日) 10:00〜18:00(JST)
役割
pinkumohikan.icon アプリ
okashoi.icon インフラ
msm2.icon アプリ
チートシートs
タイムテーブル
技術スタック
アプリケーション(言語)
Go
参考実装のバージョンそのまま
RDBMS
参考実装のまま
要事前対策
KVS
参考実装のまま
必要に応じて追加したり
新規で入れるなら Redis
web サーバ
原則 Nginx に寄せる
参考実装のバージョンそのまま
Reverse proxy
Varninsh
詰まれば Nginx つかっても :ok:
撤退ライン 1 時間
Message Queue
Redis
Job Scheduler
crond
ミドルウェアは原則最新版にバージョンを上げている
当日開始前にやること
自衛隊体操は家でやってくる(任意)
レギュレーション 再確認 pinkumohikan.icon okashoi.icon msm2.icon
15分(事前)
AlibabaCloud アカウント確認 okashoi.icon
本番やること
メンバーが ssh できるようにする okashoi.icon
5 min
アプリケーションの全体像把握
ミドルウェアレベル okashoi.icon
外部仕様レベル msm2.icon
ソースコードレベル pinkumohikan.icon
DB スキーマ pinkumohikan.icon
30min
コードベース、各種設定ファイルのリポジトリ管理okashoi.icon
20 min
kataribe 準備 (nginx, kataribe)okashoi.icon
15 min
mysql slow query log吐かせるokashoi.icon
10 min
mysql クエリチューニング pinkumohikan.icon
15 min
開発環境整備 (手元で実行できるように) pinkumohikan.icon
30 min
deploy の仕組み構築 okashoi.icon
15 min
netdata導入 msm2.icon
10 min
アプリのプロファイリング (kataribe, pprof等) msm2.icon
30 min
ミドルウェアの細かいチューニング okashoi.icon
プロファイリングツール等を無効化 + 再起動 + 動作確認 pinkumohikan.icon okashoi.icon msm2.icon
報告・共有 1時間ごと
当日「までに」やること
GitHub リポジトリの運用明文化 pinkumohikan.icon okashoi.icon msm2.icon
プルリク 1 本出して、施策ごとにベンチマーク回した結果をそこに都度はる、とか
気になったことを issue で切るとか
check.icon GitHub リポジトリ作成 (private) okashoi.icon
環境構築テンプレ準備 pinkumohikan.icon
MySQL 8 へのバージョンアップ練習 okashoi.icon
Varnish 設定練習 okashoi.icon
kataribe, pprofを触ってみる msm2.icon
netdata導入練習msm2.icon
各種設定(ユーザ作成、 ssh 鍵登録、設定ファイル Git 管理等)のカンペ作成 okashoi.icon
集まって練習(過去問)pinkumohikan.icon okashoi.icon msm2.icon
できれば 2 回くらい
アリババクラウドでやるなら isuxi を 2 回
check.iconタイムテーブルを用意しておく pinkumohikan.icon okashoi.icon msm2.icon
お昼ごはんの手配 pinkumohikan.icon okashoi.icon msm2.icon
眠くならないやつな!
付箋の購入 msm2.icon
ペン用意msm2.icon
施策案
アプリ
N+1 改善
マスタ系のテーブルをコードにべったり
RDBMS の index
新しくはる
index が効くクエリに変える
正規表現を文字列処理に
使われてないデータ更新をしない(created_at とか)
パッケージのバージョンアップ・ダウン
パッケージの変更
過度な整合性をゆるくする(ベンチマークの仕様にもからむ)
遅延書き込み、遅延集計
中間データや処理・集計済みのデータを別でもたせる
インフラ
ミドルウェアのバージョンアップ
RDBMS
KVS
Web Server
ReverseProxy
static contentsのメモリキャッシュ
static contentsのクライアントサイドキャッシュ
Cache-Control とか
private network で通信する
全文検索エンジンを入れる
solar, elastic search