Comments (6)
ISUCON競技中 確認観点メモ
アプリケーション
- 不要なトランザクション開始はないか(SELECTのみのクエリではTxは不要)
- SQLでのデータ取得数にLIMITをつけられる箇所はないか。不要な量のデータ取得を行っていないか
-
interpolateParams=true
でプレースホルダ置換しているか - DBに不要なauto incrementカラムはないか
- auto incrementカラム以外でPK指定できる箇所はないか
- for文の中でfor文を実行している箇所はないか
- リスト要素をfor文でinsertを実行している箇所は、Bulk Insert化できないか。
- リスト要素をfor文でinsertを実行している箇所は、バッチ処理化できないか
- for文の中でクエリ実行している箇所はないか。
- アプリケーションから静的ファイルを返している箇所は、キャッシュヘッダをつけているか
- 静的ファイルの配信はnginxから直接できないか
- 不要なログ出力を止めたか。
- ログ出力レベルを変更したか
- アプリケーション全体を負荷分散することを検討したか
- 特定のエンドポイントのみを、別サーバーに移すことを検討したか
- データをインメモリキャッシュすることを検討したか
- 大量データの処理をgoroutineで非同期バッチ処理することを検討したか
- SELECT * FROM ...を行っていないか。不要なカラムをSELECTしていないか。
- ソート処理をSQLで行うことを検討したか?(DB、アプリそれぞれの負荷次第)
- ソート処理をアプリケーションで行うことを検討したか? (DB、アプリそれぞれの負荷次第)
- DBに不要な情報をINSERTしようとしていないか。
サーバー
- ディスク容量がいっぱいになってないか
- dstat、vmstatから、IO waitなどの傾向がわからないか
- htopなどから、メモリかCPUのどちらがボトルネックになっているか
- アプリケーション以外で負荷がかかっているサービスがないか
- journaldなど
- nginx、DB、アプリケーションの負荷のバランスはどうなっているか。
- DBやnginxを別サーバーに分離できないか
nginx
- nginxは正常にうごいているか。
- nginx -tでエラーがでていないか
- nginxのエラーログはでていないか(一時ファイル書き出しなど)
- index.htmlやassetsファイル類・静的ファイルをnginxでキャッシュできないか
- アプリケーション側から画像などの静的ファイルを返却する際に、キャッシュヘッダをつけているか
- キャッシュヘッダを追加することで、ベンチマーカー側でキャッシュさせられないか
- HTTP2は有効化されているか
- 大きなリクエスト時の、一時ファイル書き出しは発生していないか
- nginxだけを別サーバーに移せないか
- nginxで、Botリクエストを弾くような設定を追加できないか
DB、データベース
- DBの切り替え方法や指定方法は確認したか
- mysqlのエラーログは出ていないか
- 各クエリはindexが効いているかを、実際にExplainして確認したか
- 降順・昇順組み合わせのIndexはmariadbでは動かないなどの罠はかかってないか
- DBの初期化処理方法は確認したか。ベンチ実行ごとにDBが初期化されているか。
- テーブルの正規化を検討したか
- 検索やデータ更新を効率化するために、テーブルの非正規化を検討したか
- DBを別ホストに移せないか
- 一部のデータをテーブル分離することを検討したか
- テーブル毎にDBホストを分けることを検討したか
- 実行回数が多いクエリを削減できないかを検討したか
- 実行回数が少ないが時間がかかっているクエリがないかを確認したか
- 空間インデックスが使えないかを検討したか?
- Generated Colmunで、降順用カラムを自動作成する必要はないか?
- カラムを増やした場合、Invisible ColumnとしてSelect対象から外す事を検討したか
from isucon2022.
競技終了時確認項目
再起動試験
- 再起動試験を実施したか
- 再起動後もMySQLやnginxの設定が反映されているか
- DBやNGINXを分散している場合、再起動後も正しくアプリケーションが動いているか
- どの順番でサーバーが再起動しても問題ないか
後片付け・ミドルウェア
- datadogエージェントは停止したか。再起動後も動かないようになっているか
- netdataなどのモニタリングツールは停止したか。再起動後も動かないようになっているか
- アプリケーションから、Datadogエージェント関連のコードを削除したか
- アプリケーションからのログ出力を停止したか
- 手元のVSCodeや各種ツールからの接続は切ったか
チェック
- ディスク容量は十分に残っているか
from isucon2022.
メモ
[Service]
StartLimitBurst=999
from isucon2022.
ISUCONの初期実装ではlenとcapがともに0のスライスに必要なデータをappendしていく実装が一般的
from isucon2022.
以下のように、DBから取るがレスポンスのjsonには含まないものはないか?
あればDBからの取得対象外にしても良いか検討する。
Popularity int64 db:"popularity" json:"-"
検索やIndex用にカラムを追加した場合は、このようにしてレスポンスのjsonに含ませない方法もある
from isucon2022.
実装したインメモリキャッシュは適切に動いているか。
初期情報sqlでの初期化の場合、このデータがキャッシュに入れられてない事もある。
インメモリキャッシュはメモリサイズが溢れないか。
from isucon2022.
Related Issues (7)
- ISUCON11 練習 - 環境構築 HOT 20
- ISUCON - 初期準備する事項をまとめる HOT 2
- ISUCON - 参加準備 HOT 3
- ISUCON - Datadog使ってみる HOT 30
- ISUCON11 - 参考リンク類メモ HOT 14
- ISUCON11 - 練習メモ HOT 30
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from isucon2022.