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

Swooleのフレームワークをくらべてみた

 Swooleのフレームワークをくらべてみた

PHPerKaig2019の発表資料です

uzullaさんのPHPerKaigi2018「大統一PHP」
https://speakerdeck.com/uzulla/da-tong-php
で紹介されているSwooleという非同期かつ、Coroutineの仕組みをもったPHPのextensionがあります。
Swooleを用いたフレームワークはいくつかあります。
今回、EasySwoole(v2,v3)、Swoft、Laravel-Swooleの3つの比べてみた結果をお話しします。
それぞれのフレームワークのISUCON8予選のベンチマークの結果をお伝えします(恒例)
No.1 Swooleフレームワークはどれだ!

CyberAgent SGE Engineer

March 31, 2019
Tweet

More Decks by CyberAgent SGE Engineer

Other Decks in Technology

Transcript

  1. 4XPPMFͷϑϨʔϜϫʔΫΛ
    ͘Β΂ͯΈͨ
    !HPPEPP

    QIQFSLBJHJ

    View Slide

  2. • גࣜձࣾαΠόʔΤʔδΣϯτ
    • 4(&౷ׅຊ෦ٕज़౷ׅࣨࣨ௕
    • ࢠձࣾࣾ$50
    • גࣜձࣾ$SBGU&HH
    • גࣜձࣾδʔΫϨετ
    • גࣜձࣾαϜβοϓ
    • നҪɹӳ
    • ΤϯδχΞ
    • #MPH
    IUUQBNFCMPKQHPPEPP
    ͓લɺ୭Α
    • 5XJUUFS
    !HPPEPP
    • %2
    ͙ͪ͢Ή '#

    ϓΫϦϙ ཱྀܳਓ

    View Slide

  3. "HFOEB
    w4XPPMFͱ͸
    w4XPPMFΛ༻͍ͨϑϨʔϜϫʔΫ
    wࠓճ͓࿩͢ΔϑϨʔϜϫʔΫ
    wDPSPVUJOFͷॻ͖ํ
    wϕϯνϚʔΫ݁Ռ
    w·ͱΊ

    View Slide

  4. 4XPPMFͱ͸

    View Slide

  5. 1)1ͰΠϕϯτۦಈͷඇಉظ
    ˍίϧʔνϯϕʔεͷฒߦॲཧ

    View Slide

  6. 1)1FS,JBHJͷV[VMMB͞ΜͷൃදͰ஌Γ·ͨ͠
    https://speakerdeck.com/uzulla/da-tong-php

    View Slide

  7. 1)1ͷFYUFOTJPOͱͯ͠
    ಋೖ͠·͢
    # pecl install swoole

    View Slide

  8. 4XPPMFΛ༻͍ͨ
    ϑϨʔϜϫʔΫ

    View Slide

  9. 4XPPMFͷ(JU)VCͰ঺հ͞Ε͍ͯΔ
    ϑϨʔϜϫʔΫɹ̏ͭ
    https://github.com/swoole/swoole-src

    View Slide

  10. 4XPGU
    ϞμϯͰɺߴੑೳͰ
    "01ͱ$PSPVUJOFΛ
    උ͑ͨϑϨʔϜϫʔΫ
    1)1$PO4FOEBJͷ-5Ͱ
    ࿩͠·ͨ͠
    https://speakerdeck.com/sgeengineer/swoolewotukatutahuremuwakuswoftwotafalsesimu
    ϞμϯͳϑϨʔϜϫʔΫͳΒɺͪ͜Β

    View Slide

  11. &BTZTXPPMF
    ؆୯ʹ4XPPMFΛࢼ͢ͷͳΒɺͪ͜Β
    https://speakerdeck.com/sgeengineer/isucon8deyu-xuan-luo-tisitafalsede-swoole-easyswoole-deshu-kihuan-ete-gan-xiang-zhan-debentizou-rasetemitahua
    1)1$POGFSFODFͷ
    -5Ͱ࿩͠·ͨ͠ɾɾɾ

    View Slide

  12. 4BCFS
    'BUF޷͖͕ͭͬͨͬ͘Ά͍

    View Slide

  13. 4XPPMFͷ(JU)VCͰ঺հ͞Ε͸͞Ε͍ͯͳ͍
    Ͱ͕͢ɺݸਓతʹ஫໨͍ͯ͠ΔϑϨʔϜϫʔΫ

    View Slide

  14. ࠓճ͓࿩͢Δ
    ϑϨʔϜϫʔΫ

    View Slide

  15. w&BTZ4XPPMF W W

    w4XPGU
    w-BSBWFM4XPPMF

    View Slide


  16. &BTZ4XPPMF

    &BTZ4XPPMF
    https://github.com/easy-swoole/easyswoole

    View Slide

  17. ಛ௃

    &BTZ4XPPMF
    •Built-in HTTP, TCP,
    WebSocket,Udp
    Coroutine Server
    •Global dependency
    injection container
    •PSR-7 based HTTP
    message
    implementation
    •RESTful supported
    •HTTP,TCP, WebSocket,
    Udp middleware support
    •Mysql, Redis, RPC,
    HTTP Coroutine Clients
    •High performance
    router
    •Universal connection
    pools
    •Remote Console
    W

    View Slide

  18. W͔Βͷվળ఺
    ࣗ෼͕ؾ͍ͮͨ఺


    &BTZ4XPPMF

    View Slide

  19. %#ͷτϥϯβΫγϣϯ
    ·ΘΓ͕੔උ͞Εͨ
    W͸ͳ͔ͬͨɾɾ


    &BTZ4XPPMF

    View Slide


  20. &BTZ4XPPMF

    View Slide

  21. $POpH͕EFWͱ
    QSPEVDUJPOͱΛ෼͚ͯ
    ؅ཧͰ͖ΔΑ͏ʹͳͬͨ
    W͸ͳ͔ͬͨɾɾɾ


    &BTZ4XPPMF

    View Slide


  22. &BTZ4XPPMF
    ىಈ࣌ʹ؀ڥ໊Λࢦఆ
    ແࢦఆͩͱEFWͷDPOpH͕ద༻͞ΕΔʣ
    $ php easyswoole start produce

    View Slide

  23. &BTZ4XPPMFͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ App        
    │ ├ HttpController
    │ │ ├ BooksController.php
    │ │ └ Router.php
    │ ├ Model
    │ │ └ BookModel.php
    │ └ Utility
    │   └ Pool
    │     ├ MysqlObject.php
    │     └ MysqlPool.php
    ├ Views
    │ └ index.twig
    ├ Log
    ├ Temp
    ├ vendor
    ├ Static
    │ ├ css
    │ └ js
    ├ easyswoole
    ├ production.php
    └ dev.php

    &BTZ4XPPMF

    View Slide

  24. &BTZ4XPPMFͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ App        
    │ ├ HttpController
    │ │ ├ BooksController.php
    │ │ └ Router.php
    │ ├ Model
    │ │ └ BookModel.php
    │ └ Utility
    │   └ Pool
    │     ├ MysqlObject.php
    │     └ MysqlPool.php
    ├ Views
    │ └ index.twig
    ├ Log
    ├ Temp
    ├ vendor
    ├ Static
    │ ├ css
    │ └ js
    ├ easyswoole
    ├ production.php
    └ dev.php

    &BTZ4XPPMF
    ίϯτϩʔϥʔ

    View Slide

  25. &BTZ4XPPMFͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ App        
    │ ├ HttpController
    │ │ ├ BooksController.php
    │ │ └ Router.php
    │ ├ Model
    │ │ └ BookModel.php
    │ └ Utility
    │   └ Pool
    │     ├ MysqlObject.php
    │     └ MysqlPool.php
    ├ Views
    │ └ index.twig
    ├ Log
    ├ Temp
    ├ vendor
    ├ Static
    │ ├ css
    │ └ js
    ├ easyswoole
    ├ production.php
    └ dev.php

    &BTZ4XPPMF
    ϧʔλʔ

    View Slide

  26. &BTZ4XPPMFͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ App        
    │ ├ HttpController
    │ │ ├ BooksController.php
    │ │ └ Router.php
    │ ├ Model
    │ │ └ BookModel.php
    │ └ Utility
    │   └ Pool
    │     ├ MysqlObject.php
    │     └ MysqlPool.php
    ├ Views
    │ └ index.twig
    ├ Log
    ├ Temp
    ├ vendor
    ├ Static
    │ ├ css
    │ └ js
    ├ easyswoole
    ├ production.php
    └ dev.php

    &BTZ4XPPMF
    Ϟσϧ

    View Slide

  27. &BTZ4XPPMFͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ App        
    │ ├ HttpController
    │ │ ├ BooksController.php
    │ │ └ Router.php
    │ ├ Model
    │ │ └ BookModel.php
    │ └ Utility
    │   └ Pool
    │     ├ MysqlObject.php
    │     └ MysqlPool.php
    ├ Views
    │ └ index.twig
    ├ Log
    ├ Temp
    ├ vendor
    ├ Static
    │ ├ css
    │ └ js
    ├ easyswoole
    ├ production.php
    └ dev.php

    &BTZ4XPPMF
    %#ͷίωΫγϣ
    ϯϓʔϧ

    View Slide

  28. &BTZ4XPPMFͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ App        
    │ ├ HttpController
    │ │ ├ BooksController.php
    │ │ └ Router.php
    │ ├ Model
    │ │ └ BookModel.php
    │ └ Utility
    │   └ Pool
    │     ├ MysqlObject.php
    │     └ MysqlPool.php
    ├ Views
    │ └ index.twig
    ├ Log
    ├ Temp
    ├ vendor
    ├ Static
    │ ├ css
    │ └ js
    ├ easyswoole
    ├ production.php
    └ dev.php

    &BTZ4XPPMF
    ςϯϓϨʔτϑΝΠϧ

    View Slide

  29. &BTZ4XPPMFͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ App        
    │ ├ HttpController
    │ │ ├ BooksController.php
    │ │ └ Router.php
    │ ├ Model
    │ │ └ BookModel.php
    │ └ Utility
    │   └ Pool
    │     ├ MysqlObject.php
    │     └ MysqlPool.php
    ├ Views
    │ └ index.twig
    ├ Log
    ├ Temp
    ├ vendor
    ├ Static
    │ ├ css
    │ └ js
    ├ easyswoole
    ├ production.php
    └ dev.php

    &BTZ4XPPMF
    ੩తϑΝΠϧ

    View Slide

  30. &BTZ4XPPMFͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ App        
    │ ├ HttpController
    │ │ ├ BooksController.php
    │ │ └ Router.php
    │ ├ Model
    │ │ └ BookModel.php
    │ └ Utility
    │   └ Pool
    │     ├ MysqlObject.php
    │     └ MysqlPool.php
    ├ Views
    │ └ index.twig
    ├ Log
    ├ Temp
    ├ vendor
    ├ Static
    │ ├ css
    │ └ js
    ├ easyswoole
    ├ production.php
    └ dev.php

    &BTZ4XPPMF
    ىಈ༻ϑΝΠϧ

    View Slide

  31. &BTZ4XPPMFͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ App        
    │ ├ HttpController
    │ │ ├ BooksController.php
    │ │ └ Router.php
    │ ├ Model
    │ │ └ BookModel.php
    │ └ Utility
    │   └ Pool
    │     ├ MysqlObject.php
    │     └ MysqlPool.php
    ├ Views
    │ └ index.twig
    ├ Log
    ├ Temp
    ├ vendor
    ├ Static
    │ ├ css
    │ └ js
    ├ easyswoole
    ├ production.php
    └ dev.php

    &BTZ4XPPMF
    $POpHϑΝΠϧ
    ؀ڥ͝ͱ

    View Slide

  32. ίωΫγϣϯϓʔϧ

    &BTZ4XPPMF

    View Slide

  33. ίωΫγϣϯϓʔϧ

    &BTZ4XPPMF
    ίϯτϩʔϥʔͰɺϦΫΤετ։࢝͝ͱ
    ʹݺͼग़͞ΕΔϝιου

    View Slide

  34. ίωΫγϣϯϓʔϧ

    &BTZ4XPPMF
    ϓʔϧ͔Β%#ͷΠϯελϯεΛऔΓग़͢

    View Slide

  35. ίωΫγϣϯϓʔϧ

    &BTZ4XPPMF
    ίϯτϩʔϥʔͰɺϦΫΤετऴྃ͝ͱ
    ʹݺͼग़͞ΕΔϝιου

    View Slide

  36. ίωΫγϣϯϓʔϧ

    &BTZ4XPPMF
    ϦιʔεΛϓʔϧʹฦ٫

    View Slide

  37. ϧʔλʔ

    &BTZ4XPPMF

    View Slide

  38. ϧʔλʔ

    &BTZ4XPPMF
    ؆୯ͳॲཧͳΒͦͷ··͔͚Δ

    View Slide

  39. ϧʔλʔ

    &BTZ4XPPMF
    (&5ɺ1045ɺ165ɺ%&-&5&Λࢦఆ
    ͯ͠ɺϧʔςΟϯά

    View Slide

  40. ίϯϑΟά

    &BTZ4XPPMF

    View Slide

  41. ίϯϑΟά

    &BTZ4XPPMF
    4XPPMFपΓͷઃఆ͸͜͜

    View Slide

  42. ίϯϑΟά

    &BTZ4XPPMF
    .Z42-ͷઃఆ͸ίί

    View Slide

  43. ΘΓͱૉ௚ʹѻ͑Δ
    ϑϨʔϜϫʔΫ

    &BTZ4XPPMF

    View Slide


  44. 4XPGU

    4XPGU
    https://www.swoft.org/

    View Slide

  45. •Base on Swoole extension
    •Built-in HTTP, TCP, WebSocket
    Coroutine Server
    •Powerful AOP (Aspect Oriented
    Programming)
    •Flexible and comprehensive
    annotations framework
    •Global dependency injection
    container
    •PSR-7 based HTTP message
    implementation
    •PSR-14 based event manager
    •PSR-15 based middleware
    •PSR-16 based cache design
    •Scalable high performance RPC
    •Holistic service governance, fallback,
    load balance, service registration
    and discovery
    •Database ORM
    •Universal connection pools
    •Mysql, Redis, RPC, HTTP Coroutine
    Clients
    •Coroutine driver client and blocking
    driver client seamlessly switch
    automatically
    •Coroutine and asynchronous task
    delivery
    •Custom user processes
    •RESTful supported
    •Internationalization (i18n) supported
    •High performance router
    •Fast and flexible parameter validator
    •Alias mechanism
    •Powerful log component
    •Cross-platform application auto-
    reload mechanism
    https://github.com/swoft-cloud/swoft ͷREADMEͷӳ༁
    Ҿ༻ɿ

    4XPGU

    View Slide

  46. •Built-in HTTP, TCP,
    WebSocket Coroutine
    Server
    •Powerful AOP
    (Aspect Oriented
    Programming)
    •Database ORM
    •Universal connection
    pools
    •Flexible and
    comprehensive
    annotations
    framework
    •Global dependency
    injection container
    •PSR-7 based HTTP
    message
    implementation
    ಛ௃

    4XPGU

    View Slide

  47. 3FRVFTUMJGFDZDMF
    https://doc.swoft.org/master/zh-CN/core/framework.html

    4XPGU

    View Slide

  48. 4XPGUͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ app        
    │ ├ Controllers
    │ │ └ BooksController.php
    │ └ Models
    │   └ Entity
    │    └ Books.php
    ├ config
    │ ├ beans
    │ │ └ base.php
    │ └ properties
    │   ├ app.php
    │   └ db.php
    ├ public
    ├ runtime
    │ ├ logs
    │ ├ uploadfiles
    │ └ sessions
    ├ resources
    │ └ views
    │   └ books
    │     └ view.php
    └ bin
      ├ bootstrap.php
      └ swoft

    4XPGU

    View Slide

  49. 4XPGUͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ app        
    │ ├ Controllers
    │ │ └ BooksController.php
    │ └ Models
    │   └ Entity
    │    └ Books.php
    ├ config
    │ ├ beans
    │ │ └ base.php
    │ └ properties
    │   ├ app.php
    │   └ db.php
    ├ public
    ├ runtime
    │ ├ logs
    │ ├ uploadfiles
    │ └ sessions
    ├ resources
    │ └ views
    │   └ books
    │     └ view.php
    └ bin
      ├ bootstrap.php
      └ swoft
    ίϯτϩʔϥʔ
    Ϟσϧ

    4XPGU

    View Slide

  50. 4XPGUͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ app        
    │ ├ Controllers
    │ │ └ BooksController.php
    │ └ Models
    │   └ Entity
    │    └ Books.php
    ├ config
    │ ├ beans
    │ │ └ base.php
    │ └ properties
    │   ├ app.php
    │   └ db.php
    ├ public
    ├ runtime
    │ ├ logs
    │ ├ uploadfiles
    │ └ sessions
    ├ resources
    │ └ views
    │   └ books
    │     └ view.php
    └ bin
      ├ bootstrap.php
      └ swoft
    ౎౓ಡΈࠐ·ΕΔ
    ઃఆϑΝΠϧ
    ˞FOW͕༏ઌ
    CFBOੜ੒࣌ʹಡΈࠐ·ΕΔ
    ϑΝΠϧ

    4XPGU

    View Slide

  51. 4XPGUͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ app        
    │ ├ Controllers
    │ │ └ BooksController.php
    │ └ Models
    │   └ Entity
    │    └ Books.php
    ├ config
    │ ├ beans
    │ │ └ base.php
    │ └ properties
    │   ├ app.php
    │   └ db.php
    ├ public
    ├ runtime
    │ ├ logs
    │ ├ uploadfiles
    │ └ sessions
    ├ resources
    │ └ views
    │   └ books
    │     └ view.php
    └ bin
      ├ bootstrap.php
      └ swoft
    ੩తϑΝΠϧஔ͖৔
    DTTɺKT


    4XPGU

    View Slide

  52. 4XPGUͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ app        
    │ ├ Controllers
    │ │ └ BooksController.php
    │ └ Models
    │   └ Entity
    │    └ Books.php
    ├ config
    │ ├ beans
    │ │ └ base.php
    │ └ properties
    │   ├ app.php
    │   └ db.php
    ├ public
    ├ runtime
    │ ├ logs
    │ ├ uploadfiles
    │ └ sessions
    ├ resources
    │ └ views
    │   └ books
    │     └ view.php
    └ bin
      ├ bootstrap.php
      └ swoft
    Ұ࣌ϑΝΠϧஔ͖৔

    4XPGU

    View Slide

  53. 4XPGUͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ app        
    │ ├ Controllers
    │ │ └ BooksController.php
    │ └ Models
    │   └ Entity
    │    └ Books.php
    ├ config
    │ ├ beans
    │ │ └ base.php
    │ └ properties
    │   ├ app.php
    │   └ db.php
    ├ public
    ├ runtime
    │ ├ logs
    │ ├ uploadfiles
    │ └ sessions
    ├ resources
    │ └ views
    │   └ books
    │     └ view.php
    └ bin
      ├ bootstrap.php
      └ swoft
    UFNQMBUFϑΝΠϧ

    4XPGU

    View Slide

  54. 4XPGUͷϑΥϧμߏ੒ ࠷খݶ

    Project
    ├ app        
    │ ├ Controllers
    │ │ └ BooksController.php
    │ └ Models
    │   └ Entity
    │    └ Books.php
    ├ config
    │ ├ beans
    │ │ └ base.php
    │ └ properties
    │   ├ app.php
    │   └ db.php
    ├ public
    ├ runtime
    │ ├ logs
    │ ├ uploadfiles
    │ └ sessions
    ├ resources
    │ └ views
    │   └ books
    │     └ view.php
    └ bin
      ├ bootstrap.php
      └ swoft
    ىಈ༻ϑΝΠϧ

    4XPGU

    View Slide

  55. ίϯτϩʔϥʔ

    4XPGU

    View Slide

  56. ίϯτϩʔϥʔ
    w 63-ͷϚοϐϯάΛBOOPUBUJPOͰ
    ઃఆ
    w ςϯϓϨʔτɺϨΠΞ΢τϑΝΠϧΛ
    BOOPUBUJPOͰઃఆ

    4XPGU

    View Slide

  57. ίϯτϩʔϥʔ
    143४ڌ

    4XPGU

    View Slide

  58. ίϯτϩʔϥʔ
    ʙதུʙ
    %FQFOEFODZ
    *OKFDUJPO

    4XPGU

    View Slide

  59. Ϟσϧ &OUJUZ


    4XPGU

    View Slide

  60. Ϟσϧ &OUJUZ

    $ php bin/swoft entity:create -d bookshelf
    ࣍ͷίϚϯυͰ%#͔Βࣗಈੜ੒
    ϦόʔεΤϯδχΞϦϯά


    4XPGU

    View Slide

  61. Ϟσϧ03.

    4XPGU

    View Slide

  62. Ϟσϧ03.
    03.
    #PPLTςʔϒϧσʔλΛऔಘ


    4XPGU

    View Slide

  63. $POpH%#

    4XPGU

    View Slide

  64. $POpH%#
    DPOOFDUJPOQPPMͷઃఆ

    4XPGU

    View Slide

  65. Ұ௨Γἧ͍ͬͯΔ
    ϑϧελοΫ
    ϑϨʔϜϫʔΫ

    4XPGU

    View Slide


  66. -BSBWFM4XPPMF

    -BSBWFM4XPPMF
    https://github.com/swooletw/laravel-swoole

    View Slide

  67. ಛ௃
    -BSBWFMͷ
    ΞϓϦέʔγϣϯ͕
    4XPPMFͰಈ͘

    -BSBWFM4XPPMF

    View Slide

  68. -BSBWFMͰΞϓϦέʔγϣ
    ϯΛͭ͘Δ

    -BSBWFM4XPPMF
    ඇಉظฒྻॲཧ͕΄͘͠ͳΔ
    -BSBWFM4XPPMFͰղܾ

    View Slide

  69. -BSBWFM
    UP
    -BSBWFM4XPPMF

    -BSBWFM4XPPMF

    View Slide


  70. DPNQPTFSʹ௥Ճ

    -BSBWFM4XPPMF

    DPOpHͷ1SPWJEFS௥Ճ

    View Slide


  71. 4XPPMF༻ͷDPOpHੜ੒

    -BSBWFM4XPPMF
    $ php artisan vendor:publish --tag=laravel-swoole

    [email protected]Λઃఆ

    View Slide


  72. ىಈ

    -BSBWFM4XPPMF
    $ php artisan swoole:http start
    ॳظઃఆͩͱ൪ϙʔτͰ଴ͪड͚·͢

    OHJOYͷઃఆ
    proxy_pass http://127.0.0.1:1215
    [email protected]Ͱઃఆ͠·͢
    https://github.com/swooletw/laravel-swoole/wiki

    View Slide

  73. -BSBWFMͰॻ͍ͨ
    ΞϓϦέʔγϣϯ͕
    ΄Μͱ͏ʹͦͷ··
    4XPPMFͰಈ͘ʂ

    -BSBWFM4XPPMF

    View Slide

  74. DPSPVUJOFͷॻ͖ํ

    View Slide

  75. ͲͷϑϨʔϜϫʔΫ΋
    4XPPMFͷؔ਺͕ݺ΂Δ
    ͷͰ࣍ͷΑ͏ʹ͔͚Δ

    View Slide

  76. View Slide

  77. HPؔ਺ͰDPSPVUJOFͱͯ͠ಈ࡞

    View Slide

  78. $IBOOFMΛ࡞੒
    $IBOOFMʹ
    σʔλΛ֨ೲ
    औΓग़͢
    ˞औΓग़ͨ͠σʔλ
    ͷॱং͸ෆఆ

    View Slide

  79. ϕϯνϚʔΫ
    ݁Ռ

    View Slide

  80. *46$0/
    ϕϯνϚʔΫ݁Ռ
    ൺֱ

    View Slide

  81. *46$0/ͷ͓୊
    8FCαΠτͷ࢓༷

    View Slide

  82. νέοτ༧໿αΠτ

    View Slide

  83. ϩάΠϯ͕͋Γɺηογϣϯ؅ཧඞཁ

    View Slide

  84. ੮༧໿ͷτϥϯβΫγϣϯ੍ޚ͋Γ

    View Slide

  85. ؅ཧը໘Ͱ$47μ΢ϯϩʔυ΋͋Δ

    View Slide

  86. ຊ൪ͱಉ͡؀ڥ͸
    ༻ҙͰ͖ͳ͔ͬͨͷͰ
    ($1্Ͱଌͬͨ
    ݁ՌͰ͢
    n1-highcpu-2ʢvCPU x 2ɺϝϞϦ 1.8 GBʣ

    View Slide

  87. ߏ੒ 4MJNɺ-BSBWFM

    ߏ੒ &BTZ4XPPMF 4XPGU -BSBWFM4XPPMF

    h2o php-fpm MySQL
    h2o Swoole MySQL


    View Slide

  88. ൺֱ݁Ռ

    View Slide

  89. %FGBVMU
    4MJN

    &BTZ4XPPMF
    W

    &BTZ4XPPMF
    W

    4XPGU -BSBWFM
    -BSBWFM
    4XPPMF
    ճ໨
    ̎ճ໨
    ճ໨
    ճ໨
    ̑ճ໨
    ฏۉ
    ˞ϩδοΫมߋͳ͠ͷঢ়ଶ
    1)1
    4XPPMF

    View Slide

  90. %FGBVMU
    4MJN

    &BTZ4XPPMF
    W

    &BTZ4XPPMF
    W

    4XPGU -BSBWFM
    -BSBWFM
    4XPPMF
    ճ໨
    ̎ճ໨
    ճ໨
    ճ໨
    ̑ճ໨
    ฏۉ
    ˞ϩδοΫมߋͳ͠ͷঢ়ଶ
    1)1
    4XPPMF
    ϑϨʔϜϫʔΫͷ
    ҧ͍͸ޡࠩͰ͢ʂ
    &BTZ4XPPMF W
    ͷ࣮૷ɿ
    4XPGUͷ࣮૷ɿ https://github.com/shirai-suguru/isucon8-swoft
    https://github.com/shirai-suguru/isucon8-easyswoole
    &BTZ4XPPMF W
    ͷ࣮૷ɿ https://github.com/shirai-suguru/isucon8-easyswoole-v3
    -BSBWFMͷ࣮૷ɿ https://github.com/shirai-suguru/isucon8-laravel
    -BSBWFM4XPPMFͷ࣮૷ɿ https://github.com/shirai-suguru/isucon8-laravel-swoole

    View Slide

  91. &BTZ4XPPMF͸एׯ҆ఆ౓
    ʹ͚ܽΔ͔΋
    ࣗ෼͕ॻ͍ͨ෦෼ͰϝϞϦ͕ϦʔΫͯ͠ΔՄ
    ೳੑ΋͋Δ͕

    ߴෛՙ࣌Τϥʔ͕ͰΔͱ͖͕͋ͬͨ
    ϕϯνϚʔΫॴײ

    View Slide

  92. ·ͱΊ

    View Slide

  93. ͓͢͢Ί͸ʁ

    View Slide

  94. ݸਓతʹ4XPGU
    ͋͘·Ͱݸਓͷײ૝Ͱ͢

    View Slide

  95. ͨͩ͠ɺ4XPGU͸
    ߋ৽ස౓͕Լ͕ͬͯ
    WΛ࡞͍ͬͯΔؾ഑

    View Slide

  96. কདྷੑ͸
    -BSBWFM4XPPMF
    ͋͘·Ͱݸਓͷײ૝Ͱ͢

    View Slide

  97. ಋೖͷෑډ͕௿͍
    ˍ
    ਓؾͷϑϨʔϜϫʔΫ
    ͕΄΅ͦͷ··ಈ͘

    View Slide

  98. Έͳ͞Μ΋
    4XPPMFΛ͔ͭͬͨ
    ϑϨʔϜϫʔΫʹ
    νϟϨϯδ͠·͠ΐ͏

    View Slide

  99. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide