はじめに
この記事はProgaku Advent Calendar 2024の18日目の記事です
今回プログラミング学習コミュニティProgakuのメンバーとチームを組んでISUCON14に初めて参加しました。
ISUCON14に挑戦するにあたって学習したことなどをここにまとめたいと思います。
チーム名: 琉球覇王いな卍@喧嘩無双
メンバー: @masayasviel @rgj0830
他メンバーの記事
参考になった記事
ISUCON環境構築
my.cnfの設定
- バッファプールの適用
- MySQLの設定ファイルについて
DBクライアントMySQL接続
- A5M2でサーバーのMySQLに接続した際の備忘録
- Host xxx is not allowed to connect to this MySQL server の対応
- 【MySQL】MySQLの外部接続を許可する
- MySQL ユーザ名&ホストの変更
- mysqlの疎通確認(ログイン確認)
スロークエリログの解析
alpの導入
pproteinの導入
ISUCON13の過去問を解く上で重宝していた資料
やったこと
- AWSの学習と環境構築
- private-isu問題集に軽く触れる => private-isuの回答
- ISUCON本を読み込む
- ISUCON過去問環境をAWSで再現するための一式まとめにあるISUCON13の過去問を解く
転職活動でかなり疲弊し、他のメンバーよりISUCONの学習で出遅れるといった状況だったため、やることを絞って学習に取り組みました。
ISUCON本を読了後、DB分割など記事から得た情報もありますが、基本的にISUCON本に記載されているテクニックをしっかり使い倒すことを意識してISUCON13の過去問をひたすら解いていました。
たったそれだけ?
。。。それだけなんです。
過去問を解く上で注力したところ
ISUCONでやることは、「ボトルネックの特定」と「ボトルネックの解消」なので、ボトルネックの特定手段の確立とボトルネックの解消の確立に注力しました。
具体的には以下の内容に取り組みました。
- ボトルネックの特定
- SQLのボトルネックを特定
- mysqldumpslowを使ったスロークエリログの特定
- スロークエリログの詳細を確認するためにsqlのEXPLAINを使用
- nginxのボトルネックを特定
- alpを使用ったアクセスログの確認
- SQLのボトルネックを特定
- ボトルネックの解消
- DB分割対応
- インデックスの付与
- 「prepare と interpolateParams=true」を設定
- バッファプールサイズの設定
- 不要なトランザクションの削除
まとめ
初参加のISUCONで学習期間が約半年ほどと時間に限りがあったため、やることを絞って学習に取り組みました。
ISUCONが開催された当日は学習してきたことを結果に結びつけることが出来ましたが、詳細は参加した時の記事として別で書こうと思います。