• 検索結果がありません。

2 P r i m e S t r a t e g y C o., L t d. W o r d P r e s s F u l l y M a n a g e d S e r v i c e D i v i s i o n 1. 今 日 お 話 しすること

N/A
N/A
Protected

Academic year: 2021

シェア "2 P r i m e S t r a t e g y C o., L t d. W o r d P r e s s F u l l y M a n a g e d S e r v i c e D i v i s i o n 1. 今 日 お 話 しすること"

Copied!
53
0
0

読み込み中.... (全文を見る)

全文

(1)

ハイパフォーマンスWordPress

スライドURL http://goo.gl/rRwrvj

プライム・ストラテジー株式会社

(2)

P r i m e S t r a t e g y C o . , L t d . W o r d P r e s s F u l l y M a n a g e d S e r v i c e D i v i s i o n

(3)

「WordPressとサーバをチューニングして どこまで高速化できるのか?」

をテーマに高速化の技術と考え方をお話しします。

(4)

「まずは証拠」

(5)

お手数ですが、

「KUSANAGI WordPress」と検索して

http://kusanagi.tokyo/

にアクセスしてみていただけますか?

(6)
(7)

P r i m e S t r a t e g y C o . , L t d . W o r d P r e s s F u l l y M a n a g e d S e r v i c e D i v i s i o n

7

(8)

中村 けん牛 自己紹介 WordPressのフルマネージドサービスを 提供するプライム・ストラテジー株式会社 の代表をしています。 おもに東京とジャカルタで働いています。

t

@kengyu_n

f

Kengyu.Nakamura

(9)

月間1億PV超のメディアサイトなどの構築、サーバ運用 9 テレビ朝日 様 番組ブログポータル マイナビ 様 「マイナビウーマン」 Adobe Systems 様 事例サイト

(10)

超高速WordPress仮想マシン「KUSANAGI」の開発 ・WordPress 実行時間3 ミリ秒 台 ・1000 リクエスト/秒 をページキャッシュ非使用で実 現する仮想マシン (4vCPU、最大性能時)

(11)

WordPressプラグインの開発

11 ・Prime Timeline

=>ランタイムプロファイラ

・001 Prime Strategy Translate Accelerator

(12)

WordPress関連書籍の執筆など (出版社:SBクリエイティブ株式会社他) 『WordPressの教科書』 シリーズ (出版社:株式会社オライリー・ジャパン) 『詳解 WordPress』 『WordPressによるWebアプリケーション開発』

(13)

P r i m e S t r a t e g y C o . , L t d . W o r d P r e s s F u l l y M a n a g e d S e r v i c e D i v i s i o n

13

(14)

なぜWordPressの高速化が必要とされるのか?

1.WordPressはPHP+MySQLの動的なシステム =>

(15)

なぜWordPressの高速化が必要とされるのか? 15 2.CPUの開発ロードマップは動作クロック(周波数)よ りもコア数重視の流れ => ハードの進化による処理速度向上を期待しづらい

(16)

なぜWordPressの高速化が必要とされるのか? 3.このような背景の中でオウンドメディアやサービス サイトでは (1)PV獲得の機会を失わないという観点 (2)ユーザーエクスペリエンス向上の観点 (3)検索エンジン最適化の観点 (4)Webサイトの信頼性、安定性の観点

(17)

WordPressの高速化とは? 17 1.サーバサイドでの高速化 <= 本日のテーマ (サーバ、WordPress) 2.フロントエンドの高速化 (HTML、CSS、JavaScript)

(18)

サーバサイドの高速化とは?

(19)

サーバサイドの高速化とは?

19

HTMLページのロード時間を短くして

(20)

WordPressの高速化 HTMLページのロード時間を短くする=①+②+③を短縮する ブラウザ サーバ(WordPress) ①HTTPリクエスト送信 ②実行 ③HTTPレスポンス受信

(21)

WordPressの高速化

21 HTMLページのロード時間をFirebugのネットタブで確認する

(22)

WordPressの高速化

1秒あたりのアクセス数を増やすとは?

(23)

WordPressの高速化 23 ページのロード時間と1秒あたりのリクエスト数の関係 クイズ1(注:通信時間など無視しておおざっぱに考えます) 1vCPU(1コア)でページのロード時間が500ms だった場合、 1秒あたりのリクエスト数はいくつになりますか?

(24)

WordPressの高速化 ページのロード時間と1秒あたりのリクエスト数の関係 クイズ2 (注:通信時間など無視しておおざっぱに考えます) 1vCPU(1コア)でページのロード時間を100msにチューニ ングできた場合、 1秒あたりのリクエスト数はいくつになりますか?

(25)

WordPressの高速化 25 ページのロード時間と1秒あたりのリクエスト数の関係 クイズ3 (注:通信時間など無視しておおざっぱに考えます) 1vCPU(1コア)でページのロード時間が100msの場合、 2vCPU(2コア)にスケールアップすると 1秒あたりのリクエスト数はいくつになりますか?

(26)

WordPressの高速化 ページのロード時間と1秒あたりのリクエスト数の関係 クイズ4 (注:通信時間など無視しておおざっぱに考えます) 2vCPU(2コア)でページのロード時間が100msの場合、 4vCPU(4コア)にスケールアップするとページのロード時 間はいくつになりますか?

(27)

WordPressの高速化 27 HTMLページのロード時間を分解すると ブラウザ サーバ(WordPress) ①リクエスト送信 ブラウザ ②実行 ③レスポンス受信 通信時間 通信時間 PHPの実行 MySQLの実行 翻訳処理

(28)

P r i m e S t r a t e g y C o . , L t d . W o r d P r e s s F u l l y M a n a g e d S e r v i c e D i v i s i o n

4.ページキャッシュを使わずに WordPressを高速化する

(29)

WordPressを高速化する 29

あるサーバを利用してデフォルトの状態だと

WordPress 1.ロード時間 246ms 2.リクエスト数 4.9リクエスト/秒

(30)

WordPressを高速化する

ページキャッシュを使わないでどこまでいけるか

WordPress APC(PHPアクセラレー タ)導入で約1.85倍 246ms→133ms

(31)

WordPressを高速化する

31

PHP実行の仕組み

(32)

WordPressを高速化する PHP実行の仕組み

中間コード

(33)

WordPressを高速化する 33

ページキャッシュを使わないでどこまでいけるか

WordPress APC(PHPアクセラレー タ)導入で約1.85倍 246ms→133ms けっこう簡単に導入できます。 たとえば、 Centos 6の場合、最短rootで 次のコマンドを打つだけ

yum install -y php-pecl-apc; service httpd restart;

(34)

WordPressを高速化する

ページキャッシュを使わないでどこまでいけるか

WordPress APC(PHPアクセラレー タ)導入で約1.85倍 246ms→133ms PHP5.4まではAPC APC=PHPアクレラレータ+ ユーザーキャッシュ PHP5.5からはOPcache(+20%) APCu拡張

(35)

WordPressを高速化する 35

ページキャッシュを使わないでどこまでいけるか

WordPress MySQLのクエリキャッ シュ導入で約1.15倍 133ms→115ms APC(PHPアクセラレー タ)導入で約1.85倍 246ms→133ms

(36)

WordPressを高速化する

ページキャッシュを使わないでどこまでいけるか

WordPress MySQLのクエリキャッ シュ導入で約1.15倍 133ms→115ms APC(PHPアクセラレー タ)導入で約1.85倍 246ms→133ms 簡単に導入できます。 たとえば、my.cnfのmysqldセクション に次の1行を追加してMySQLサーバを

(37)

WordPressを高速化する 37

ページキャッシュを使わないでどこまでいけるか

WordPress MySQLのクエリキャッ シュ導入で約1.15倍 133ms→115ms 翻訳キャッシュ(001 Prime Strategy Translate Accelarator)

導入で約1.6倍 115ms→72ms

APC(PHPアクセラレー タ)導入で約1.85倍

(38)

WordPressを高速化する

ページキャッシュを使わないでどこまでいけるか

WordPress MySQLのクエリキャッ シュ導入で約1.15倍 133ms→115ms 翻訳キャッシュ(001 Prime Strategy Translate Accelarator)

APC(PHPアクセラレー タ)導入で約1.85倍

246ms→133ms

(39)

WordPressを高速化する 39

ページキャッシュを使わないでどこまでいけるか

WordPress MySQLのクエリキャッ シュ導入で約1.15倍 133ms→115ms 翻訳キャッシュ(001 Prime Strategy Translate Accelarator)

導入で約1.6倍 115ms→72ms APC(PHPアクセラレー タ)導入で約1.85倍 246ms→133ms Apache(mod_php)から Nginx+HHVM構成に変更で 約2.2倍 72ms→33ms

(40)

WordPressを高速化する HHVM実行の仕組み

(41)

WordPressを高速化する 41 HHVM実行の仕組み 中間コード ←これを HHVMが実行

(42)

WordPressを高速化する HHVM実行の仕組み 何度も利用される部 分をJITでコンパイル してネイティブコー ドへ

(43)

WordPressを高速化する 43

ページキャッシュを使わないでどこまでいけるか

WordPress MySQLのクエリキャッ シュ導入で約1.15倍 133ms→115ms 翻訳キャッシュ(001 Prime Strategy Translate Accelarator)

導入で約1.6倍 115ms→72ms APC(PHPアクセラレー タ)導入で約1.85倍 246ms→133ms Apache(mod_php)から Nginx+HHVM構成に変更で 約2.2倍 72ms→33ms ページ圧縮 (gzip)導入で 約1.1倍 33ms→30ms

(44)

WordPressを高速化する

ページキャッシュを使わないでどこまでいけるか

1.ロード時間 30ms 2.リクエスト数 56.8リクエスト/秒 1.ロード時間 246ms 2.リクエスト数 4.9リクエスト/秒 ロード時間 約8倍 リクエスト数 約11.6倍に向上

(45)

WordPressを高速化する 45

ページキャッシュを使わないでどこまでいけるか

1.ロード時間 30ms 2.リクエスト数 56.8リクエスト/秒 このサーバのCPUの周波数とコア数を変更すると どのような影響があるのか?

(46)

P r i m e S t r a t e g y C o . , L t d . W o r d P r e s s F u l l y M a n a g e d S e r v i c e D i v i s i o n

(47)

ページキャッシュを導入する

( WP SiteManager、WP Super Cache、Nginx、Varnishなど)

(48)

ページキャッシュを導入する

WP SiteManagerの場合

1.ロード時間 15ms 260リクエスト/秒 1.ロード時間 246ms 2.リクエスト数 4.9リクエスト/秒 ロード時間 約16.4倍 リクエスト数 約53.1倍に向上

(49)

トランジェントを導入する 49

トランジェントとは?

WordPerss内部の値を一 時的にDB(wp_optionsテ ーブル)に保存して、異な るプロセスで再利用する ためのWordPressの機能 => 部分キャッシュとして利用 可能

(50)

トランジェントを導入する

トランジェントの具体例(footer.php)

<?php if ( ! $footer_cache = get_transient( 'footer_cache' ) ) { ob_start(); ?>

<footer id="colophon" class="site-footer" role="contentinfo">

<?php get_sidebar( 'footer' ); ?> <div class="site-info">

<?php do_action(

<a href="<?php echo esc_url( __(

'http://wordpress.org/', 'twentyfourteen' ) ); ?>"><?php printf( __( 'Proudly powered by %s', 'twentyfourteen' ), 'WordPress' ); ?></a>

</div><!-- .site-info --> </footer><!-- #colophon --> <?php $footer_cache = ob_get_clean(); set_transient( 'footer_cache', $footer_cache, 60 * 5 );

(51)

ということで

(52)

ぜひ実践して

(53)

53

参照

関連したドキュメント

Found in the diatomite of Tochibori Nigata, Ureshino Saga, Hirazawa Miyagi, Kanou and Ooike Nagano, and in the mudstone of NakamuraIrizawa Yamanashi, Kawabe Nagano.. cal with

S49119 Style Classic Flexor Grade 7.0 Fixation Manual Weight 215g Size range 35 - 52 TECHNOLOGY-HIGHLIGHTS. •

Proof: The observations at the beginning of this section show for n ≥ 5 that a Moishezon twistor space, not fulfilling the conditions of Theorem 3.7, contains a real fundamental

のようにすべきだと考えていますか。 やっと開通します。長野、太田地区方面  

OFFI CI AL SCORE CERTI FI CATE GTEC (4技能) (CBT可). Test Repor t For m I ELTS™(Academi c

[r]

創業当時、日本では機械のオイル漏れを 防ぐために革製パッキンが使われていま

[r]