Weitere ähnliche Inhalte
Ähnlich wie 日本語環境におけるWordPressの高速化 (20)
Kürzlich hochgeladen (10)
日本語環境におけるWordPressの高速化
- 14. Chapter 2 具体的に何を高速化するのか
測定する対象
一、HTMLページのロード時間
二、1秒あたりのリクエスト数
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 14
- 15. Chapter 2 具体的に何を高速化するのか
一、HTMLページのロード時間=①+②+③を短縮する
①リクエスト送信
ブラウザ サーバ(WordPress)
②実行
③レスポンス受信
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 15
- 16. Chapter 2 具体的に何を高速化するのか
ロード時間を分解する
翻訳処理
MySQLの実行 伝送時間
PHPの実行 ③レスポンス受信
伝送時間 ②実行
①リクエスト送信
ブラウザ サーバ(WordPress) ブラウザ
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 16
- 17. Chapter 2 具体的に何を高速化するのか
今回テストするサーバ環境など
サーバの場所 Amazon東京DC
サーバ(VPS) Amazon EC2 スモール インスタンス
WordPress 3.2.1日本語版
アクセス元 東京某所
東京某所 東京のAmazon EC2 東京某所
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 17
- 18. Chapter 2 具体的に何を高速化するのか
HTMLページのロード時間をFirefoxのFirebugで測定する
ロード時間は682ミリ秒
1,000ミリ秒=1秒。
Firebugのネットタブ
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 18
- 19. Chapter 2 具体的に何を高速化するのか
二、1秒間に処理できるリクエスト数を増やす
abというlinuxのコマンドライン
ツールでAmazonに設置した
WordPressに負荷をかけて測
定します。
=> 1.50リクエスト/秒
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 19
- 20. Chapter 2 具体的に何を高速化するのか
何もしない状態での測定結果
1.ロード時間 682ms
2.リクエスト数 1.5リクエスト/秒
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 20
- 21. Chapter 2 具体的に何を高速化するのか
何もしない状態での測定結果
1.ロード時間 682ms
2.リクエスト数 1.5リクエスト/秒
あまりに遅すぎます。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 21
- 22. Chapter 2 具体的に何を高速化するのか
そこでサーバ(VPS)を変更します(スケールアップ)。
サーバ(VPS) Amazon EC2 スモール インスタンス
(CPU 約900MHz 1コア,メモリ 1.7G)
サーバ(VPS) Amazon EC2 ミディアム インスタンス
(CPU 約2.17GHz 2コア,メモリ 1.7G)
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 22
- 23. Chapter 2 具体的に何を高速化するのか
スケールアップの効果
1.ロード時間 682ms→291ms(2.3倍)
2.リクエスト数 1.5リクエスト/秒→7.0リクエスト/秒(4.6倍)
ロード時間はCPUの周波数に、リクエスト
数は周波数にコア数を乗じたものに比例
するのがわかります。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 23
- 25. Chapter 3 日本語環境特有の場所と翻訳の問題
サーバの設置場所の違いによるロード時間の差
サーバの場所 Amazon東京DC
サーバ(VPS) Amazon EC2 ミディアム インスタンス
WordPress 3.2.1日本語版
アクセス元 東京某所
サーバの場所 Amazon世界各地のデータセンター
で比較します。
(アメリカ東海岸、西海岸、シンガ
ポール、東京で測定)
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 25
- 26. Chapter 3 日本語環境特有の場所と翻訳の問題
サーバの設置場所の違いによるロード時間の差
設置場所 ロード時間 遅延時間
①東京 291ms 10ms
②シンガポール 564ms 283ms
① ③ ④ ③西海岸 653ms 372ms
④東海岸 898ms 617ms
②
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 26
- 27. Chapter 3 日本語環境特有の場所と翻訳の問題
サーバの設置場所の違いにより生じる伝送遅延時間
翻訳処理
MySQLの実行 伝送時間
PHPの実行 ③レスポンス受信
伝送時間 ②実行
①リクエスト送信
ブラウザ サーバ(WordPress) ブラウザ
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 27
- 28. Chapter 3 日本語環境特有の場所と翻訳の問題
日本語翻訳処理
ja.moファイル等
を用いた翻訳プ
ロセス
英語版 日本語版
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 28
- 29. Chapter 3 日本語環境特有の場所と翻訳の問題
日本語翻訳処理のオーバーヘッド
WordPress日本語版の実行時間
の最大75%を占めます。
=>改善策は次章でお話します。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 29
- 31. Chapter 4 ページキャッシュを使わないで高速化する
PHPを高速化する
翻訳処理
MySQLの実行 伝送時間
PHPの実行 ③レスポンス受信
伝送時間 ②実行
①リクエスト送信
ブラウザ サーバ(WordPress) ブラウザ
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 31
- 32. Chapter 4 ページキャッシュを使わないで高速化する
APCを導入してPHPの構文解析を高速化する。
PHPは実行時に通常のPHPファイル
を構文解析し、バイトコードと呼ばれ
るPHPだけが理解できる形式に変
換します。
APCはバイトコードをキャッシュして
PHPの実行時間を短縮させます。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 32
- 33. Chapter 4 ページキャッシュを使わないで高速化する
APC導入の効果
1.ロード時間 291ms→188ms(1.54倍)
2.リクエスト数 7.0リクエスト/秒→11.8リクエスト/秒(1.68倍)
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 33
- 34. Chapter 4 ページキャッシュを使わないで高速化する
MySQLを高速化する
翻訳処理
MySQLの実行 伝送時間
PHPの実行 ③レスポンス受信
伝送時間 ②実行
①リクエスト送信
ブラウザ サーバ(WordPress) ブラウザ
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 34
- 35. Chapter 4 ページキャッシュを使わないで高速化する
MySQLを高速化する(クエリキャッシュの有効化)
my.cnfの[mysqld]セクションに
query_cache_size = 64M
の一行を追加してクエリキャッシュを有効にします。
クエリキャッシュはデータベースに変更がない限り、一度発行されたSELECT
文の実行結果をキャッシュして、それを再利用するものです。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 35
- 36. Chapter 4 ページキャッシュを使わないで高速化する
クエリキャッシュ導入の効果
1.ロード時間 188ms→186ms(1.01倍)
2.リクエスト数 11.8リクエスト/秒→12.0リクエスト/秒(1.01倍)
セットアップ直後はあまり効果が見られませんが、クエ
リ数やデータ数が増加してくると威力を発揮します。数
倍以上のパフォーマンスになることもあります。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 36
- 37. Chapter 4 ページキャッシュを使わないで高速化する
日本語翻訳処理を高速化する
翻訳処理
MySQLの実行 伝送時間
PHPの実行 ③レスポンス受信
伝送時間 ②実行
①リクエスト送信
ブラウザ サーバ(WordPress) ブラウザ
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 37
- 38. Chapter 4 ページキャッシュを使わないで高速化する
001 Prime Strategy Translate Acceleratorを導入する
WordPress.org公式ディレクトリから
プラグインをダウンロードして有効化
します。
翻訳ファイルの読み込みにキャッ
シュを用いたり、翻訳そのものを停
止させることで高速化します。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 38
- 39. Chapter 4 ページキャッシュを使わないで高速化する
Translate Accelerator導入の効果(APCモード)
1.ロード時間 186ms→132ms(1.40倍)
2.リクエスト数 12.0リクエスト/秒→17.3リクエスト/秒(1.44倍)
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 39
- 40. Chapter 4 ページキャッシュを使わないで高速化する
Translate Accelerator導入の効果(サイト表示の翻訳を停止)
1.ロード時間 132ms→75ms(1.76倍)
2.リクエスト数 17.3リクエスト/秒→40.9リクエスト/秒(2.36倍)
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 40
- 41. Chapter 4 ページキャッシュを使わないで高速化する
HTMLを圧縮して転送を高速化する
翻訳処理
MySQLの実行 伝送時間
PHPの実行 ③レスポンス受信
伝送時間 ②実行
①リクエスト送信
ブラウザ サーバ(WordPress) ブラウザ
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 41
- 42. Chapter 4 ページキャッシュを使わないで高速化する
mod_deflate利用してファイル圧縮で転送量を減少させる
mod_deflateが利用可な場合、Apacheの設定ファイルに、
AddOutputFilterByType DEFLATE text/html text/plain text/css
等の設定を行うと、該当するコンテントタイプのファイルをgzip圧縮します。
これによって転送量を減少させることができます。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 42
- 43. Chapter 4 ページキャッシュを使わないで高速化する
mod_deflate導入の効果
1.ロード時間 75ms→66ms(1.13倍)
2.リクエスト数 40.9リクエスト/秒→41.0リクエスト/秒(1.00倍)
リクエスト数にはあまり影響がありませんが、ページの
ボリュームが多い場合には効果的です。また
WordPressのみならずCSSやJavascriptなどにも適用で
き、ページ全体の表示速度を向上させることができます。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 43
- 45. Chapter 5 ページキャッシュを用いて高速化する
ページキャッシュを用いる高速化
翻訳処理
MySQLの実行 伝送時間
PHPの実行 ③レスポンス受信
伝送時間 ②実行
①リクエスト送信
ブラウザ サーバ(WordPress) ブラウザ
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 45
- 46. Chapter 5 ページキャッシュを用いて高速化する
WP Super Cacheでページをキャッシュする
WordPress.org公式ディレクトリから
プラグインをダウンロードして有効化
します。
一度アクセスのあったページを
キャッシュして再利用します。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 46
- 47. Chapter 5 ページキャッシュを用いて高速化する
WP Super Cache導入の効果
1.ロード時間 66ms→25ms(2.64倍)
2.リクエスト数 41リクエスト/秒→679リクエスト/秒(16.56倍)
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 47
- 48. Chapter 5 ページキャッシュを用いて高速化する
Nginxのプロクシキャッシュを使う(1回目のアクセス)
①リクエスト ④キャッシュ処理と
レスポンス
Nginx+proxy
80番ポート cache
②プロクシ ③PHP(WordPress)の実行
8080番ポート Nginx+fcgi
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 48
- 49. Chapter 5 ページキャッシュを用いて高速化する
Nginxのプロクシキャッシュを使う(2回目以降のアクセス)
①リクエスト ②キャッシュを返す
Nginx+proxy
80番ポート cache
8080番ポート Nginx+fcgi
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 49
- 50. Chapter 5 ページキャッシュを用いて高速化する
Nginxのプロクシキャッシュ導入の効果
1.ロード時間 25ms→25ms(1.00倍)
2.リクエスト数 679リクエスト/秒→1515リクエスト/秒(2.23倍)
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 50
- 51. Chapter 5 ページキャッシュを用いて高速化する
Nginx+Varnishでさらに高速化する(1回目のアクセス)
①リクエスト ⑥レスポンス
80番ポート Nginx+proxy
②プロクシ ⑤キャッシュ処理
6081番ポート Varnish
+
③プロクシ ④PHP(WordPress)の実行
8080番ポート Nginx+fcgi
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 51
- 52. Chapter 5 ページキャッシュを用いて高速化する
Nginx+Varnishでさらに高速化する(2回目のアクセス)
①リクエスト ④レスポンス
80番ポート Nginx+proxy
②プロクシ ③キャッシュを返す
6081番ポート Varnish
+
8080番ポート Nginx+fcgi
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 52
- 53. Chapter 5 ページキャッシュを用いて高速化する
Nginx+Varnish導入の効果
1.ロード時間 25ms→25ms(1.00倍)
2.リクエスト数 1515リクエスト/秒→2501リクエスト/秒(1.65倍)
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 53
- 54. Chapter 5 ページキャッシュを用いて高速化する
絶大な威力を発揮するページキャッシュ。では、これですべて解決か?
ページキャッシュなし ページキャッシュあり
テーマ修正 ○ キャッシュクリア必要
ウィジェット修正 ○ キャッシュクリア必要
設定変更 ○ キャッシュクリア必要
投稿 ○ △
管理画面 ○ キャッシュ無効
セッション使用 ○ 対策が必要
データ書き込み ○ 対策が必要
条件に応じた ○ 対策が必要
表示の変化
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 54
- 56. Chapter 6 最終結果とまとめ
おまけ:keep aliveを有効にして接続を再利用する
翻訳処理
MySQLの実行 伝送時間
PHPの実行 ③レスポンス受信
伝送時間 ②実行
①リクエスト送信
ブラウザ サーバ(WordPress) ブラウザ
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 56
- 57. Chapter 6 最終結果とまとめ
おまけ:keep aliveを有効にして接続を再利用する
Apaceh、Nginxともにkeep aliveを有効にすることによって一度発生した接続
を一定時間再利用します。これにより、接続を確立させるまでのオーバー
ヘッドを短縮します。
[Nginx]の場合
keepalive_timeout 3;
[Apache]の場合
KeepAlive On
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 57
- 58. Chapter 6 最終結果とまとめ
keep alive導入の効果
1.ロード時間 25ms→16ms(1.56倍)
2.リクエスト数 2501リクエスト/秒→3175リクエスト/秒(1.26倍)
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 58
- 59. Chapter 6 最終結果とまとめ
2,000倍速くなったか?
1.ロード時間 682ms→16ms(43倍)
2.リクエスト数 1.5リクエスト/秒→3175リクエスト/秒(2116倍)
ロード時間は43倍でしたが、リクエスト数は2000倍を
達成しました。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 59
- 60. Chapter 6 最終結果とまとめ
まとめ 001 Prime Strategy
サーバの場所
Translate Accelarator
クエリキャッシュ gzip圧縮
翻訳処理
サーバの場所 APC MySQLの実行 伝送時間
keep alive ③レスポンス受信
PHPの実行
伝送時間 ②実行
①リクエスト送信 WP Super Cache
Nginx+proxy cache
Nginx+Varnish
Prime Strategy
サーバスペックの見直し
Copyright (C) 2011 Prime Strategy co.,ltd. 60
- 61. ご清聴ありがとうございました。
Prime Strategy
Copyright (C) 2011 Prime Strategy co.,ltd. 61