達人が教えるWebパフォーマンスチューニング
〜ISUCONから学ぶ高速化の実践
〜
2022年6月4日紙版発売
2022年5月30日電子版発売
藤原俊一郎,馬場俊彰,中西建登,長野雅広,金子達哉,草野翔 著
B5変形判/360ページ
定価3,278円(本体2,980円+税10%)
ISBN 978-4-297-12846-3
書籍の概要
この本の概要
LINE株式会社が主催するWebサービスのパフォーマンスチューニングコンテスト,ISUCON(Iikanjini Speed Up Contest)で技術を競い合ってきた著者がWebサービス高速化のための考え方とノウハウをわかりやすく解説。
本書では,お題となるWebサービスをひとつ用意して,手を動かしながら高速化手法を学んでいきます。Webサービスがどのくらいの負荷に耐えられるか,どのくらいの負荷で不具合が起こるかを検証し,不具合が起こる原因を突き止め,改善していきます。また,負荷に対応する方法だけでなく,負荷を発生させる方法(ベンチマーカーの作成方法)も紹介します。
本書を読んで,Webサービス高速化について理解を深め,性能を向上させましょう。
こんな方におすすめ
- Webサービス・アプリケーションの動作が重くて困っている方
- ISUCONに出場してみたい方
- ISUCONに出場したことはあるが,良い成績を収められなかった方
この書籍に関連する記事があります!
- Webサービスをリリースしたあとに起きること
- LINE株式会社が主催するWebサービスのパフォーマンスチューニングコンテスト,ISUCON(Iikanjini Speed Up Contest)で技術を競い合ってきた著者がWebサービス高速化のための考え方とノウハウをわかりやすく解説。
本書のサンプル
本書の一部ページを,PDFで確認することができます。
- サンプルPDFファイル(852KB)
目次
Chapter1 チューニングの基礎知識
- 1-1 “高速であること”は現代のWebサービスの必須要件
- 1-2 高速なWebサービスとは
- 1-3 Webサービスの負荷
- 1-4 必要十分なキャパシティを用意するには
- 1-5 パフォーマンスチューニング“きほんのき”
- 1-6 パフォーマンスチューニング“きほんのほ”
- 1-7 パフォーマンスチューニング“きほんのん”
- 1-8 まとめ
Chapter2 モニタリング
- 2-1 モニタリングとは - インフラにおけるテスト
- 2-2 モニタリングに対する考え方
- 2-3 モニタリングの種類
- 2-4 手動でのモニタリング
- 2-5 モニタリングツール
- 2-6 モニタリングツールのアーキテクチャ
- 2-7 実際にモニタリングを行う
- 2-8 モニタリングの注意点
- 2-9 ログに対するモニタリング
- 2-10 まとめ
Chapter3 基礎的な負荷試験
- 3-1 本書で扱うWebサービス private-isu
- 3-2 負荷試験の準備
- 3-3 ベンチマーカーによる負荷試験の実行
- 3-4 パフォーマンスチューニング 最初の一歩
- 3-5 ベンチマーカーの並列度
- 3-6 まとめ
Chapter4 シナリオを持った負荷試験
- 4-1 負荷試験ツール k6
- 4-2 k6による単純な負荷試験
- 4-3 k6でシナリオを記述する
- 4-4 複数のシナリオを組み合わせた統合シナリオを実行する
- 4-5 負荷試験で得られたアクセスログを解析する
- 4-6 まとめ
Chapter5 データベースのチューニング
- 5-1 データベースの種類と選択
- 5-2 データベースの負荷を測る
- 5-3 インデックスでデータベースを速くする
- 5-4 N+1とは
- 5-5 データベースとリソースを効率的に利用する
- 5-6 まとめ
Chapter6 リバースプロキシの利用
- 6-1 アプリケーションとプロセス・スレッド
- 6-2 リバースプロキシを利用するメリット
- 6-3 nginxとは
- 6-4 nginxのアーキテクチャ
- 6-5 nginxによる転送時のデータ圧縮
- 6-6 nginxによるリクエスト・レスポンスのバッファリング
- 6-7 nginxとアップストリームサーバーのコネクション管理
- 6-8 nginxのTLS通信を高速にする
- 6-9 まとめ
Chapter7 キャッシュの活用
- 7-1 キャッシュデータ保存に利用されるミドルウェア
- 7-2 キャッシュをKVSに保存する際の注意点
- 7-3 いつキャッシュを利用するか
- 7-4 具体的なキャッシュ実装方法
- 7-5 キャッシュを監視する
- 7-6 まとめ
Chapter8 押さえておきたい高速化手法
- 8-1 外部コマンド実行ではなく,ライブラリを利用する
- 8-2 開発用の設定で冗長なログを出力しない
- 8-3 HTTPクライアントの使い方
- 8-4 静的ファイル配信をリバースプロキシから直接配信する
- 8-5 HTTPヘッダーを活用してクライアント側にキャッシュさせる
- 8-6 CDN上にHTTPレスポンスをキャッシュする
- 8-7 まとめ
Chapter9 OSの基礎知識とチューニング
- 9-1 流れを見極める
- 9-2 Linux Kernelの基礎知識
- 9-3 Linuxのプロセス管理
- 9-4 Linuxのネットワーク
- 9-5 LinuxのディスクI/O
- 9-6 CPU利用率
- 9-7 Linuxにおける効率的なシステム設定
- 9-8 Linuxカーネルパラメータ
- 9-9 MTU(Maximum Transmission Unit)
- 9-10 まとめ
付録
A private-isuの攻略実践
- A-1 用意した競技用環境
- A-2 ベンチマーカーの実行方法
- A-3 各章の技法を適用する
- A-4 まとめ
B ベンチマーカーの実装
- B-1 ISUCONのベンチマーカーは何をするのか
- B-2 ベンチマーカーに頻出する実装パターン
- B-3 private-isuを対象としたベンチマーカーの実装
- B-4 まとめ
この本に関連する書籍
-
サーバ/インフラエンジニアの基本がこれ1冊でしっかり身につく本
本書は,サーバ/インフラの運用・管理などに携わるエンジニアにとって必要な技術や知識を基本から解説した1冊です。ネットワークやサーバの基礎知識はもちろんのこと,...