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

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

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

29b5d2223002e0fcb01f2fb0778ed636?s=128

Tsuyoshi Sadakata

June 12, 2017
Tweet

Transcript

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

  2. 貞方 毅(さだかた つよし) 所属: 株式会社Fusic  技術開発部門  基盤ユニット 

    サーバサイドエンジニア Twitter/Github: @sadapon2008 PHPカンファレンス福岡2017 2
  3. $ composer create-project --prefer-dist cakephp/app blog PHPカンファレンス福岡2017 3

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

  5.  CakePHP3公式チュートリアル: ブログチュートリアル  シンプルなCRUD  VPS 2CPU RAM 1GB想定のVMで負荷テスト

     CentOS7+Apache 2.4+PHP7(mod_php)+MySQL5.7  一覧画面に負荷テストツールSiegeで計測 約 267 trans/sec PHPカンファレンス福岡2017 5
  6.  コアのキャッシュをファイルキャッシュからAPCuの メモリキャッシュに変更  config/app.php  ページネーションのクエリにAPCuのクエリキャッ シュを適用  ※1

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

    ※1 CakePHP3のクエリキャッシュはかなり癖あり  ※2 Qiita「CakePHP3で簡単にFileCacheからfindで きるようにするプラグイン」 約 267 trans/sec Before 約 280 trans/sec After 7
  8.  ここでもメモリキャッシュのAPCuを活用 $ composer create-project dump-autoload --optimize --apcu 約 280

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

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

  11.  使用しないmod_*をコメントアウトしてメモリ節約  StartServers,MaxClients等を64に固定 約 329 trans/sec Before 約 355

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

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

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

    355 trans/sec 約 33% UP PHPカンファレンス福岡2017 14 チューニングネタ是非共有してください!
  15. ReactPHP+CakePHP3  PSR-7を活用  Application::bootstrap()をリクエスト間で共有し て高速化できるかも? PHPカンファレンス福岡2017 15

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