ISUCON本
Scan
Ch1.チューニング
- SEO
- 速さの単位
- 速さとキャパシティ
- 推測せず計測する
- 公平に比較
- 1つずつ比較
- ボトルネック
- 負荷試験
Ch2. モニタリング
- 外形監視
- 内部監視
- node_exporter
- グラフの比較
- 高負荷状態のモニタリング
- 解像度
- ログに対するモニタリング
Ch3. Ch4. 負荷試験
- private-isu
- 負荷試験環境
- nginx
- アクセスログ
- JSON形式のログ
- alp
- ベンチマーカー
- abコマンド
- abとalpの結果の比較
- 負荷試験中の負荷
- MySQLのボトルネック
- スロークエリログ
- 並列度
- CPUを使い切る
- シナリオ
- 負荷試験ツールk6
- Webサービスの初期化処理シナリオ
- アクセスログ解析
- 統合シナリオ
Ch5. データベース
- DBの種類と選択
- RDBMS
- NoSQL
- NewSQL
- DBの負荷計測
- OSから負荷を観察
- プロセスリスト
- pt-query-digestでスロークエリログの分析
- query-digesterでプロファイリングの自動化
- インデックス
- 複合インデックス
- クラスターインデックス
- N+1
- データベースとリソースの効率的な利用
- FORCE INDEX
- STRAIGHT_JOIN
- 必要なカラムだけ取得
- プリペアドステートメント
- 接続の永続化と最大接続数
Ch6. リバースプロキシ
- アプリケーション
- プロセス・スレッド
- nginx
- アーキテクチャ
- 転送時のデータ圧縮
- リクエスト・レスポンスのバッファリング
- アップストリームサーバーとのコネクション管理
- TLS通信の高速化
Ch7. キャッシュ
- ミドルウェア
- KVS(Key-Value-Store)
- いつ利用するか
- TTLの設定
- 具体的な実装方法
- 生成結果を保存
- 非同期処理
- バッチ処理
- キャッシュの監視
Ch8. 高速化手法
- ライブラリ
- 冗長なログ
- HTTPクライアントの使い方
- 同一ホストへのコネクションの使い回し
- 適切なタイムアウト
- 対象ホストへのコネクション数の制限
- 静的ファイル配信
- HTTPヘッダを利用したキャッシュ
- CDN
Ch9. OS(Linux)
- 流れを見極める
- Linux Kernel
- プロセス管理
- ネットワーク
- メトリクス
- パケット処理の効率化
- ディスクI/O
- ストレージの種類
- ストレージの性能
- スループット
- レイテンシ
- IOPS
- ストレージの性質
- ディスクマウントのオプション
- I/Oスケジューラ
- CPU使用率
- us
- sy
- ni
- id
- wa
- hi
- si
- st
- 効率的なシステム設定
- ulimit
- Linuxカーネルパラメータ
- net.core.somaxconn
- net.ipv4.ip_local_port_range
- MTU(Maiximum Transmission Unit)
Question
全体
- Webサービスの高速化とは何か、何のためにあるのか
- Webサービスの高速化のために何をすればいいのか
- ISUCONで勝つためにやるべきことは何か
Ch1.
- チューニングとは何か
- チューニングはどのようにするのか
- ボトルネックとは
Ch2.
- モニタリングとは何か
- モニタリングはどのようにするのか
- node_exporterとは
- 外形監視と内部監視の違いは
Ch3. Ch4.
- 負荷試験とは何か
- 負荷試験はどのようにするのか
- 負荷試験のためのツールは何があるのか
- nginxのアクセスログで何がわかるのか
- alpとは何か
- abコマンドとは何か
- スロークエリログとは何か
- シナリオとは何か
- k6とは何か
- シナリオを設定した負荷試験は通常の負荷試験と何が違うのか
Ch5.
- データベースをどのように改善して高速化するのか
- NewSQLとは何か
- DBの負荷計測はどのようにするのか
- インデックスとは何か
- プリペアドステートメントとは何か
- 接続の永続化とは何か
Ch6.
- リバースプロキシとは何か
- リバースプロキシはどのように実装するのか
- リバースプロキシをどのように使って高速化するのか
- nginxのアーキテクチャはどのようになっているのか
- 次を実現するためにはどうするのか
- 転送時のデータ圧縮
- リクエスト・レスポンスのバッファリング
- アップストリームサーバーとのコネクション管理
- TLS通信の高速化
Ch7.
- キャッシュとは何か
- キャッシュはどのように実装するのか
- キャッシュをどのように使って高速化するのか
- KVSとは何か
Ch8.
- 高速化手法には何があるのか
- HTTPクライアントとは何か
Ch9.
- OSレベルでの高速化ではどのようなことをするのか
- 「流れ」とは何か
- Linuxカーネルとは何か
- プロセス管理とは何か
- メトリクスとは何か
- システム設定とは何か
- カーネルパラメータとは何か
- MTUとは何か