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

WordPressとWeb高速化 バックエンド編 CDNの仕組み / wordpress b...

WordPressとWeb高速化 バックエンド編 CDNの仕組み / wordpress backend web site speed trick cdn

WordPressに代表されるCMSの高速化(バックエンド編)です。
バックエンドの高速化は主にコンテンツがダウンロードされるまでの工程を速くすること。
一般的にサーバーリソースは足りているのかを見るのではなく、しっかり利用できているのかを見る必要がある。

そのためにもしっかりした計測やモニタリングが大事。

katsuhisa ogawa

August 10, 2019
Tweet

More Decks by katsuhisa ogawa

Other Decks in Technology

Transcript

  1. About me 2 ABOUT ME JOB :合同会社レッドボックス CEO Name:小川 かつひさ

    (KATSUHISA OGAWA) Like :キャッシュ・負荷分散・Web高速化 https://www.facebook.com/ogawaka https://blog.redbox.ne.jp @ogawaka キャッシュ屋で 検索
  2. 2018 Word CampTokyo 5 ABOUT ME 2018 WordCamp Tokyo スタッフ

    2018 WordCampTokyo Web高速化について登壇
  3. Web高速化の種類 14 ✓ コンテンツ最適化(画像圧縮・Minify) ✓ レンダリング処理最適化 ✓ スクリプト処理最適化 ✓ ネットワーク速度

    ✓ サーバースペック ✓ プロトコル(HTTP2) ✓ キャッシュ(CDN) ✓ ミドルウェア最適化(Webサーバー・DB) ✓ コンテンツ圧縮(Gzip Brotli)
  4. フロントエンドかバックエンドか 31 TTFB (Time To First Byte)が、300ms以上 OR NOT? ※Googleが200ms以下を推奨しているためこの数値を目標とすること。

    TTFBの値 平常時と遅いときの速度差 平常時との表示速度が1.5倍以上の差 OR NOT? いずれかが該当するならば バックエンド側を疑うべき。 ※アクセス元ロケーションデバイス等は同一とする
  5. CPU編 35 • USRが高くSYSが低いのがLinuxでは一般的。 • SYSがUSRより高いまたは同等の場合は、OSに起因する潜在的な問題の可能性が高い • IOWAITだけが高い場合はDISKの読み書き速度に問題がある可能性が高い %usr %nice

    %sys %iowait %irq %soft %steal %guest CPUコア毎に何パーセント使っているのか(マルチコアの場合) CPUのどの項目が利用されているか Core1 98% Core2 5% CPU(2Core) 片側だけしか使われていない可能性あり!
  6. Memory編 37 • SLABキャッシュが増加している場合、PHP-FPMのチューニングが必要 • SWAPを利用している場合、Memoryが足りない可能性あり ※CentOSなどの標準カーネルは、メモリーが足りていても少しだけSWAPをつかう闇仕様 MemTotal: 1012060 kB

    MemFree: 154340 kB Buffers: 99096 kB Cached: 323236 kB SwapCached: 0 kB Dirty: 0 kB Shmem: 600 kB Slab: 69348 kB Hugepagesize: 2048 kB メモリー使用率の種類 どのメモリー空間を利用しているのか
  7. DSIK IO編 39 • プロセス毎にDISKの読込み・書き込み状況が把握できる。dstat -ta --top-io-adv --top-bio-adv • 大抵はMysqlが多く利用しているケースが多い。

    • PHPが読み書きを多くしている場合は、バッチ処理やプラグインの処理で重くなっている可能性が高い。 プロセス毎のI/O どのプロセスがDISK I/Oを利用しているかDSTATで確認。 ココ!!
  8. ミドルウェア構成編 49 Core数=Workerかどうか Nginxの場合、Core数に応じたWorkerを立ち上げているか Core1 Core2 Worker1 worker_processes auto; Core1

    Core2 Worker1 Worker2 リクエストを処理するWorkerが足りない リクエストを処理するWorkerを増やす
  9. 求められるWeb高速化のトレンド 70 ✓ HTMLのダウンロード速度は、 100 〜 500 ミリ秒が理想 ✓ 1,000

    ミリ秒を越えるとクローラーがクロールを諦めてしまう可 能性あり。※1 ※12018年9月7日 Google Webmaster Central office-hours hangout クローラーに嫌われるとインデックスされず、 検索してもでてこない。
  10. まとめ 81 まとめ バックエンド高速化まとめ ✓ Web高速化は正しい継続的な測定からスタートすること ✓ 正しい理解の元、シンプルなバックエンドを構築 ✓ バックエンドのリソースは枯渇していないかではない

    正しいリソースの使い方をしているのかどうか ✓ バックエンドはコンテンツを無加工で対策することができる。 ✓ CDNはコンテンツを加工することなく対策が可能 ✓ CDNは低スペックなWebサーバーも高スペックに変化させる ✓ クローラー対策でCDNを利用するケースが近年のトレンド