レンタルサーバの設定でできるWordPressの高速化 / 20190615_WebPerfomanceSeminor
by
GENKI TANIGUCHI
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
レンタルサーバの設定で できるWebサイトの高速化 さくらインターネット株式会社 技術本部 谷口元紀
Slide 2
Slide 2 text
レンタルサーバで 「チューニング」による高速化は 可能なのか?
Slide 3
Slide 3 text
(設定値とかをいじると言う意味では) 無理です
Slide 4
Slide 4 text
なぜ無理なのか? 管理者権限がない(から色々できない) スペックなどをいじることができない 共用サーバなので機能が制限されている 4
Slide 5
Slide 5 text
では高速化するにはどうすれば?
Slide 6
Slide 6 text
とその前に
Slide 7
Slide 7 text
高速化のためには ボトルネックの把握が必要
Slide 8
Slide 8 text
Webサイトの表示速度ボトルネック PageSpeed Insightsで分析してみる 実は超巨大画像が使われている場合など、 サーバ側ではどうしようもない部分が大多 数。 ではサーバ側のボトルネックとは? 8
Slide 9
Slide 9 text
Webサイトが表示されるまでの 流れを知っておきましょう
Slide 10
Slide 10 text
ウェブサイト表示時の流れを分解すると 10 ページが見え始めるのに これぐらいかかる DNSルック アップ TLSハンド シェイク TTFB ファイル ダウンロード
Slide 11
Slide 11 text
ウェブサイト表示時の流れを分解すると 11 実際の流れはこんな感じになります。 ※DNS Lookup〜SSLまでは2回目以降キャッシュさ れます。
Slide 12
Slide 12 text
DNSルックアップとは ドメイン(example.comなど)の名前を解 決するためにかかる時間 DNSリソースレコードのTTLを短縮しすぎ なければOK 12
Slide 13
Slide 13 text
TTLとは? これ 13
Slide 14
Slide 14 text
TLSハンドシェイクとは httpsサイトが暗号化通信を開始するための ご挨拶的なもの 基本的に短縮する手段は無し 失効管理のサーバが国内にある証明書を選 ぶぐらい 14
Slide 15
Slide 15 text
TTFBとは Time To First Byteの略 サーバがページのHTMLを送ってくるまでの 時間 サーバの性能やページの重さによって大き く変わる 15
Slide 16
Slide 16 text
これがTTFB 16 ページのHTMLの 帯みたいなやつを クリック
Slide 17
Slide 17 text
ページ表示速度はTTFBではなく Time to First Meaningful Paint (意味のあるコンテンツの初回ペイント) と言われますが、TTFBはそこに 含まれるのでとても重要。
Slide 18
Slide 18 text
そして
Slide 19
Slide 19 text
TTFB以外の部分はサーバ設定で はいかんともしがたい
Slide 20
Slide 20 text
TTFBへ影響のあるもの TTFBはサーバパフォーマンスの影響を多分に受ける。 PHPのバージョンでも違う。 重いCMSを利用していると特に影響大。 静的HTMLを配信するCMS等は影響小。 20
Slide 21
Slide 21 text
高速化のために 特にやりたいこと
Slide 22
Slide 22 text
1.PHPのバージョンアップ
Slide 23
Slide 23 text
PHPのバージョン変更方法 ポチるだけ もっかいポチったら元に戻る
Slide 24
Slide 24 text
簡単!
Slide 25
Slide 25 text
PHPのバージョン変更方法 PHP7系を選択して保存するだけ
Slide 26
Slide 26 text
PHPのバージョン変更方法 レンタルサーバ各社、概ね変更可能 ドメインによって選べるところもアリ 2~3倍の高速化メリット (5系→7系の場合)
Slide 27
Slide 27 text
PHPのバージョン変更方法→デメリット 上位バージョンのPHPへ対応する必要あり 検証や仕様変更の手間
Slide 28
Slide 28 text
ポイント 現段階でPHP5系のみ対応のプラグインや テーマなどは開発が停止していることが多 セキュリティ的にも望ましくないので早急 に利用停止を検討する さくらのレンタルサーバならステージング 環境で楽ちん検証が可能
Slide 29
Slide 29 text
2.WordPressプラグインの精査
Slide 30
Slide 30 text
多機能プラグインを入れるだけで… 30 921ms→1680ms とスピードダウン ・さくらのレンタルサーバ ・WordPress ・PHP7.2モジュールモード ・アクセス解析などができる プラグインをインストール
Slide 31
Slide 31 text
試しにPHP5.6(CGIモード)に落としてみると 1680ms→4670ms 4倍程度遅い ・さくらのレンタルサーバ ・WordPress ・PHP5.6CGIモード ・アクセス解析などができる プラグインをインストール
Slide 32
Slide 32 text
なぜプラグインを入れると 重くなるのか?
Slide 33
Slide 33 text
みなさんの周りにいませんか? 「余計なアプリを入れすぎるとPCが 重くなるよ!」おじさん
Slide 34
Slide 34 text
PCが重くなるおじさんの発生要因 以前のPCはCPUやメモリリソースが少ない 余計なプロセスが動いてるとPCが重くなる 極限までアプリケーションを切り詰めるモ チベーションになる
Slide 35
Slide 35 text
PCが重くなるおじさんの発生要因 昨今のPCは余裕があるので気にしなくてよ くなった! レンタルサーバはどうなのか?
Slide 36
Slide 36 text
PCと同様に使いようによっては 重くなる
Slide 37
Slide 37 text
なぜレンサバも重くなるのか 安価にサーバサービスを提供できるように リソースを共有している 一人あたりのリソースは少なくなる もちろん、以前よりは性能は上がっていま す!
Slide 38
Slide 38 text
というわけで
Slide 39
Slide 39 text
プラグインの悪影響 基本的にWordPressはデータベースからデータを引っ張って きて何かを表示する もしくは何かしらの設定値(DBにある)に基づいて動的な処 理をする 関連投稿とか、アクセス解析とか、ショートコードとか つまり、データベースへのアクセスが大量に発生する 39
Slide 40
Slide 40 text
プラグインの悪影響② 特定ページだけならまだいいけど… 全部のページで効果/影響のあるプラグインを入れると 全部のページを開くときにDBリクエストが大量に発生する ページのHTML生成に時間がかかる 40
Slide 41
Slide 41 text
プラグインだけじゃない!
Slide 42
Slide 42 text
3.テーマの負荷見直し
Slide 43
Slide 43 text
例えば… ヘッダーロゴをテーマに登録している ヘッダーを読み込むたびにDBにロゴのパス を聞きに行く DBアクセスが輻輳して重くなる 43
Slide 44
Slide 44 text
プラグインとかパスとか 精査とかめんどいんですが。。
Slide 45
Slide 45 text
よし、 ハードコーディングしよう!
Slide 46
Slide 46 text
ハードコーディングとは 例)テーマファイルに直接ヘッダロゴのパ スを書く! 管理面倒じゃない? →はい。WordPressの良さを殺します。 46
Slide 47
Slide 47 text
ハードコーディングはやめよう!
Slide 48
Slide 48 text
4.なら キャッシュを使いましょう!
Slide 49
Slide 49 text
PHP&MySQLのページ表示までの処理 ページが表示されるまでの処理の流れ 49 ※あくまでざっくりの説明です。 HTTPリクエスト PHP処理 データベース 処理 PHP処理 HTML出力 サービスサーバ処理 DBサーバ処理 サービスサーバ処理 ネ ッ ト ワ ー ク ネ ッ ト ワ ー ク
Slide 50
Slide 50 text
何かしらキャッシュを使った場合 ページが表示されるまでの処理の流れ 50 HTTPリクエスト キャッシュ処理 HTML出力 サービスサーバ処理 ※あくまでざっくりの説明です。
Slide 51
Slide 51 text
キャッシュの種類 OPCache APCu オブジェクトキャッシュ ページキャッシュ ブラウザキャッシュ CDN(Content Delivery Network) 詳しくは 51 キャッシュの種類 さくらのナレッジ 検索
Slide 52
Slide 52 text
キャッシュプラグインを使うだけで… 52 1680ms→133ms 格段にスピードアッ プ! ・さくらのレンタルサーバ ・WordPress ・PHP7.2モジュールモード ・アクセス解析などができる プラグインをインストール ・WP Super Cache使用
Slide 53
Slide 53 text
キャッシュだって所詮 レンサバのスペック次第でしょ?
Slide 54
Slide 54 text
ではCDNを使ってみましょう!
Slide 55
Slide 55 text
CDNを経由すると… 55 さらにスピードアッ プ! ・さくらのレンタルサーバ ・WordPress ・PHP7.2モジュールモード ・アクセス解析などができる プラグインをインストール ・さくらインターネットのCDN ウェブアクセラレータを使用
Slide 56
Slide 56 text
同じサイトのデータでも 環境/設定によって これだけTTFBが変わります。
Slide 57
Slide 57 text
CDNのメリット レンサバの引っ越しがいらない 使いたいときだけ使える 帯域上限が無い(もちろん限界はあり) ハイスペックサーバに乗り換えるより安い (こともある) 57
Slide 58
Slide 58 text
CDNのデメリット 設定がややこしい(慣れれば一発) キャッシュ事故のリスク 従量課金青天井 58
Slide 59
Slide 59 text
処理能力が高いサーバを選ぶ と言う選択肢もありますが…
Slide 60
Slide 60 text
速いサーバを選ぶには? 使って色々試してみないとわからない。 お試し期間でTTFBを見てみるのが有効。 時間帯も変えると◎ ボトルネックは人それぞれ。 同じサイトコンテンツで試すのが非常に重要。 自分のサイトをコピーして(ドメインは違うので OK)試す。 60
Slide 61
Slide 61 text
一概にここが速い!とは言えない コンテンツによって異なる
Slide 62
Slide 62 text
恒常的にアクセスが多くなければ CDNの方がお得になることも
Slide 63
Slide 63 text
CDNってお高いんでしょ?
Slide 64
Slide 64 text
CDNの価格 さくらのCDN ウェブアクセラレータでは1GiB5円 (税込) GB→GiB計算を含み、GB×0.93×5で月間費用が見積 りできます。 64
Slide 65
Slide 65 text
寺社仏閣(初詣)、祭り・イベント、 学校(合格発表)等の 需要が不定期なサイトは
Slide 66
Slide 66 text
高負荷に備えて高いサーバを借りる より需要期にCDNを使う方が安い! CDN さくらのナレッジ 検索
Slide 67
Slide 67 text
帰ったら試してみましょう! Chrome Dev Tool でTTFBの確認 使っているPHPバージョンの確認 使ってないプラグインなどの精査 キャッシュプラグインの導入検討 (キャッシュのデメリットに注意する) ここぞと言うときのためにCDNを検討 67
Slide 68
Slide 68 text
ご質問ありましたら… お気軽に さくらインターネットでの担当:サービス企画 レンタルサーバ/SSL証明書/ドメイン/CDN
Slide 69
Slide 69 text
ご清聴ありがとうございました。