Upgrade to Pro — share decks privately, control downloads, hide ads and more …

レンタルサーバの設定でできるWordPressの高速化 / 20190615_WebPerfomanceSeminor

レンタルサーバの設定でできるWordPressの高速化 / 20190615_WebPerfomanceSeminor

さくらクラブ主催のWebパフォーマンス改善セミナーで発表した内容です。WordPressはどれだけレンサバの設定で高速化できるのか、PHPバージョンアップ、キャッシュプラグインの効果、CDN利用のおすすめなど。
https://sakura.doorkeeper.jp/events/90474

GENKI TANIGUCHI

June 15, 2019
Tweet

More Decks by GENKI TANIGUCHI

Other Decks in Technology

Transcript

  1. レンタルサーバの設定で
    できるWebサイトの高速化
    さくらインターネット株式会社 技術本部 谷口元紀

    View Slide

  2. レンタルサーバで
    「チューニング」による高速化は
    可能なのか?

    View Slide

  3. (設定値とかをいじると言う意味では)
    無理です

    View Slide

  4. なぜ無理なのか?

    管理者権限がない(から色々できない)

    スペックなどをいじることができない

    共用サーバなので機能が制限されている
    4

    View Slide

  5. では高速化するにはどうすれば?

    View Slide

  6. とその前に

    View Slide

  7. 高速化のためには
    ボトルネックの把握が必要

    View Slide

  8. Webサイトの表示速度ボトルネック

    PageSpeed Insightsで分析してみる

    実は超巨大画像が使われている場合など、
    サーバ側ではどうしようもない部分が大多
    数。

    ではサーバ側のボトルネックとは?
    8

    View Slide

  9. Webサイトが表示されるまでの
    流れを知っておきましょう

    View Slide

  10. ウェブサイト表示時の流れを分解すると
    10
    ページが見え始めるのに
    これぐらいかかる
    DNSルック
    アップ
    TLSハンド
    シェイク
    TTFB ファイル
    ダウンロード

    View Slide

  11. ウェブサイト表示時の流れを分解すると
    11
    実際の流れはこんな感じになります。
    ※DNS Lookup〜SSLまでは2回目以降キャッシュさ
    れます。

    View Slide

  12. DNSルックアップとは

    ドメイン(example.comなど)の名前を解
    決するためにかかる時間

    DNSリソースレコードのTTLを短縮しすぎ
    なければOK
    12

    View Slide

  13. TTLとは?

    これ
    13

    View Slide

  14. TLSハンドシェイクとは

    httpsサイトが暗号化通信を開始するための
    ご挨拶的なもの

    基本的に短縮する手段は無し

    失効管理のサーバが国内にある証明書を選
    ぶぐらい
    14

    View Slide

  15. TTFBとは

    Time To First Byteの略

    サーバがページのHTMLを送ってくるまでの
    時間

    サーバの性能やページの重さによって大き
    く変わる
    15

    View Slide

  16. これがTTFB
    16
    ページのHTMLの
    帯みたいなやつを
    クリック

    View Slide

  17. ページ表示速度はTTFBではなく
    Time to First Meaningful Paint
    (意味のあるコンテンツの初回ペイント)
    と言われますが、TTFBはそこに
    含まれるのでとても重要。

    View Slide

  18. そして

    View Slide

  19. TTFB以外の部分はサーバ設定で
    はいかんともしがたい

    View Slide

  20. TTFBへ影響のあるもの
     TTFBはサーバパフォーマンスの影響を多分に受ける。
     PHPのバージョンでも違う。
     重いCMSを利用していると特に影響大。
     静的HTMLを配信するCMS等は影響小。
    20

    View Slide

  21. 高速化のために
    特にやりたいこと

    View Slide

  22. 1.PHPのバージョンアップ

    View Slide

  23. PHPのバージョン変更方法

    ポチるだけ

    もっかいポチったら元に戻る

    View Slide

  24. 簡単!

    View Slide

  25. PHPのバージョン変更方法

    PHP7系を選択して保存するだけ

    View Slide

  26. PHPのバージョン変更方法

    レンタルサーバ各社、概ね変更可能

    ドメインによって選べるところもアリ

    2~3倍の高速化メリット
    (5系→7系の場合)

    View Slide

  27. PHPのバージョン変更方法→デメリット

    上位バージョンのPHPへ対応する必要あり

    検証や仕様変更の手間

    View Slide

  28. ポイント

    現段階でPHP5系のみ対応のプラグインや
    テーマなどは開発が停止していることが多

    セキュリティ的にも望ましくないので早急
    に利用停止を検討する

    さくらのレンタルサーバならステージング
    環境で楽ちん検証が可能

    View Slide

  29. 2.WordPressプラグインの精査

    View Slide

  30. 多機能プラグインを入れるだけで…
    30
    921ms→1680ms
    とスピードダウン
    ・さくらのレンタルサーバ
    ・WordPress
    ・PHP7.2モジュールモード
    ・アクセス解析などができる
    プラグインをインストール

    View Slide

  31. 試しにPHP5.6(CGIモード)に落としてみると
    1680ms→4670ms
    4倍程度遅い
    ・さくらのレンタルサーバ
    ・WordPress
    ・PHP5.6CGIモード
    ・アクセス解析などができる
    プラグインをインストール

    View Slide

  32. なぜプラグインを入れると
    重くなるのか?

    View Slide

  33. みなさんの周りにいませんか?
    「余計なアプリを入れすぎるとPCが
    重くなるよ!」おじさん

    View Slide

  34. PCが重くなるおじさんの発生要因

    以前のPCはCPUやメモリリソースが少ない

    余計なプロセスが動いてるとPCが重くなる

    極限までアプリケーションを切り詰めるモ
    チベーションになる

    View Slide

  35. PCが重くなるおじさんの発生要因

    昨今のPCは余裕があるので気にしなくてよ
    くなった!

    レンタルサーバはどうなのか?

    View Slide

  36. PCと同様に使いようによっては
    重くなる

    View Slide

  37. なぜレンサバも重くなるのか

    安価にサーバサービスを提供できるように
    リソースを共有している

    一人あたりのリソースは少なくなる

    もちろん、以前よりは性能は上がっていま
    す!

    View Slide

  38. というわけで

    View Slide

  39. プラグインの悪影響
     基本的にWordPressはデータベースからデータを引っ張って
    きて何かを表示する
     もしくは何かしらの設定値(DBにある)に基づいて動的な処
    理をする
     関連投稿とか、アクセス解析とか、ショートコードとか
     つまり、データベースへのアクセスが大量に発生する
    39

    View Slide

  40. プラグインの悪影響②
     特定ページだけならまだいいけど…
     全部のページで効果/影響のあるプラグインを入れると
     全部のページを開くときにDBリクエストが大量に発生する
     ページのHTML生成に時間がかかる
    40

    View Slide

  41. プラグインだけじゃない!

    View Slide

  42. 3.テーマの負荷見直し

    View Slide

  43. 例えば…

    ヘッダーロゴをテーマに登録している

    ヘッダーを読み込むたびにDBにロゴのパス
    を聞きに行く

    DBアクセスが輻輳して重くなる
    43

    View Slide

  44. プラグインとかパスとか
    精査とかめんどいんですが。。

    View Slide

  45. よし、
    ハードコーディングしよう!

    View Slide

  46. ハードコーディングとは

    例)テーマファイルに直接ヘッダロゴのパ
    スを書く!

    管理面倒じゃない?
    →はい。WordPressの良さを殺します。
    46

    View Slide

  47. ハードコーディングはやめよう!

    View Slide

  48. 4.なら
    キャッシュを使いましょう!

    View Slide


  49. PHP&MySQLのページ表示までの処理
    ページが表示されるまでの処理の流れ
    49
    ※あくまでざっくりの説明です。
    HTTPリクエスト PHP処理
    データベース
    処理
    PHP処理 HTML出力
    サービスサーバ処理 DBサーバ処理
    サービスサーバ処理












    View Slide


  50. 何かしらキャッシュを使った場合
    ページが表示されるまでの処理の流れ
    50
    HTTPリクエスト キャッシュ処理 HTML出力
    サービスサーバ処理
    ※あくまでざっくりの説明です。

    View Slide

  51. キャッシュの種類
     OPCache
     APCu
     オブジェクトキャッシュ
     ページキャッシュ
     ブラウザキャッシュ
     CDN(Content Delivery Network)
     詳しくは
    51
    キャッシュの種類 さくらのナレッジ 検索

    View Slide

  52. キャッシュプラグインを使うだけで…
    52
    1680ms→133ms
    格段にスピードアッ
    プ!
    ・さくらのレンタルサーバ
    ・WordPress
    ・PHP7.2モジュールモード
    ・アクセス解析などができる
    プラグインをインストール
    ・WP Super Cache使用

    View Slide

  53. キャッシュだって所詮
    レンサバのスペック次第でしょ?

    View Slide

  54. ではCDNを使ってみましょう!

    View Slide

  55. CDNを経由すると…
    55
    さらにスピードアッ
    プ!
    ・さくらのレンタルサーバ
    ・WordPress
    ・PHP7.2モジュールモード
    ・アクセス解析などができる
    プラグインをインストール
    ・さくらインターネットのCDN
    ウェブアクセラレータを使用

    View Slide

  56. 同じサイトのデータでも
    環境/設定によって
    これだけTTFBが変わります。

    View Slide

  57. CDNのメリット
     レンサバの引っ越しがいらない
     使いたいときだけ使える
     帯域上限が無い(もちろん限界はあり)
     ハイスペックサーバに乗り換えるより安い
    (こともある)
    57

    View Slide

  58. CDNのデメリット
     設定がややこしい(慣れれば一発)
     キャッシュ事故のリスク
     従量課金青天井
    58

    View Slide

  59. 処理能力が高いサーバを選ぶ
    と言う選択肢もありますが…

    View Slide

  60. 速いサーバを選ぶには?
     使って色々試してみないとわからない。
    お試し期間でTTFBを見てみるのが有効。
    時間帯も変えると◎
     ボトルネックは人それぞれ。
    同じサイトコンテンツで試すのが非常に重要。
    自分のサイトをコピーして(ドメインは違うので
    OK)試す。
    60

    View Slide

  61. 一概にここが速い!とは言えない
    コンテンツによって異なる

    View Slide

  62. 恒常的にアクセスが多くなければ
    CDNの方がお得になることも

    View Slide

  63. CDNってお高いんでしょ?

    View Slide

  64. CDNの価格
     さくらのCDN ウェブアクセラレータでは1GiB5円
    (税込)
     GB→GiB計算を含み、GB×0.93×5で月間費用が見積
    りできます。
    64

    View Slide

  65. 寺社仏閣(初詣)、祭り・イベント、
    学校(合格発表)等の
    需要が不定期なサイトは

    View Slide

  66. 高負荷に備えて高いサーバを借りる
    より需要期にCDNを使う方が安い!
    CDN さくらのナレッジ 検索

    View Slide

  67. 帰ったら試してみましょう!
     Chrome Dev Tool でTTFBの確認
     使っているPHPバージョンの確認
     使ってないプラグインなどの精査
     キャッシュプラグインの導入検討
    (キャッシュのデメリットに注意する)
     ここぞと言うときのためにCDNを検討
    67

    View Slide

  68. ご質問ありましたら…
     お気軽に
     さくらインターネットでの担当:サービス企画
    レンタルサーバ/SSL証明書/ドメイン/CDN

    View Slide

  69. ご清聴ありがとうございました。

    View Slide