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

CakePHP3アプリを徹底チューニングしてみた

 CakePHP3アプリを徹底チューニングしてみた

2017/06/10 @ PHPカンファレンス福岡 2017

Tsuyoshi Sadakata

June 12, 2017
Tweet

Other Decks in Programming

Transcript

  1. 貞方毅(@sadapon2008)
    PHPカンファレンス福岡2017

    View full-size slide

  2. 貞方 毅(さだかた つよし)
    所属: 株式会社Fusic
     技術開発部門
     基盤ユニット
     サーバサイドエンジニア
    Twitter/Github: @sadapon2008
    PHPカンファレンス福岡2017 2

    View full-size slide

  3. $ composer create-project --prefer-dist cakephp/app blog
    PHPカンファレンス福岡2017 3

    View full-size slide

  4. $ composer create-project --prefer-dist cakephp/app blog
    パフォーマンスのチューニングしてますか?
    PHPカンファレンス福岡2017 4

    View full-size slide

  5.  CakePHP3公式チュートリアル: ブログチュートリアル
     シンプルなCRUD
     VPS 2CPU RAM 1GB想定のVMで負荷テスト
     CentOS7+Apache 2.4+PHP7(mod_php)+MySQL5.7
     一覧画面に負荷テストツールSiegeで計測
    約 267 trans/sec
    PHPカンファレンス福岡2017 5

    View full-size slide

  6.  コアのキャッシュをファイルキャッシュからAPCuの
    メモリキャッシュに変更
     config/app.php
     ページネーションのクエリにAPCuのクエリキャッ
    シュを適用
     ※1 CakePHP3のクエリキャッシュはかなり癖あり
     ※2 Qiita「CakePHP3で簡単にFileCacheからfindで
    きるようにするプラグイン」
    約 267 trans/sec
    Before
    PHPカンファレンス福岡2017 6

    View full-size slide

  7. PHPカンファレンス福岡2017
     コアのキャッシュをファイルキャッシュからAPCuの
    メモリキャッシュに変更
     config/app.php
     ページネーションのクエリにAPCuのクエリキャッ
    シュを適用
     ※1 CakePHP3のクエリキャッシュはかなり癖あり
     ※2 Qiita「CakePHP3で簡単にFileCacheからfindで
    きるようにするプラグイン」
    約 267 trans/sec
    Before
    約 280 trans/sec
    After
    7

    View full-size slide

  8.  ここでもメモリキャッシュのAPCuを活用
    $ composer create-project dump-autoload --optimize --apcu
    約 280 trans/sec
    Before
    PHPカンファレンス福岡2017 8

    View full-size slide

  9.  ここでもメモリキャッシュのAPCuを活用
    $ composer create-project dump-autoload --optimize --apcu
    約 280 trans/sec
    Before
    約 329 trans/sec
    After
    PHPカンファレンス福岡2017 9

    View full-size slide

  10.  使用しないmod_*をコメントアウトしてメモリ節約
     StartServers,MaxClients等を64に固定
    約 329 trans/sec
    Before
    PHPカンファレンス福岡2017 10

    View full-size slide

  11.  使用しないmod_*をコメントアウトしてメモリ節約
     StartServers,MaxClients等を64に固定
    約 329 trans/sec
    Before
    約 355 trans/sec
    After
    PHPカンファレンス福岡2017 11

    View full-size slide

  12. 約 267 trans/sec
    約 280 trans/sec
    約 329 trans/sec
    約 355 trans/sec
    PHPカンファレンス福岡2017 12

    View full-size slide

  13. 約 267 trans/sec
    約 280 trans/sec
    約 329 trans/sec
    約 355 trans/sec
    約 33% UP
    PHPカンファレンス福岡2017 13

    View full-size slide

  14. 約 267 trans/sec
    約 280 trans/sec
    約 329 trans/sec
    約 355 trans/sec
    約 33% UP
    PHPカンファレンス福岡2017 14
    チューニングネタ是非共有してください!

    View full-size slide

  15. ReactPHP+CakePHP3
     PSR-7を活用
     Application::bootstrap()をリクエスト間で共有し
    て高速化できるかも?
    PHPカンファレンス福岡2017 15

    View full-size slide

  16. PHPカンファレンス福岡2017 16

    View full-size slide