ãã®èšäºã¯ãPHPãµã€ãã®ææè ãéçºè ãããã³ã·ã¹ãã 管çè ããã®è³ªåã«çããã®ã«åœ¹ç«ã¡ãŸãã
- ãµã€ããæé©åããäœæ¥ãé«éåããæ¹æ³ã¯ïŒ
- ãµã€ãã®ç«ã¡äžãæã®ãã¯ãããžãŒã«å¿ããŠããµã€ãã¯ã©ã®çšåºŠã®é床ã§æ©èœããŸããïŒ
- ãµãŒããŒãŸãã¯VPSãã»ããã¢ãããããšããã©ã®ãã¯ãããžãŒã䜿çšããå¿ èŠããããŸããïŒ
å žåçãªåé¡ïŒ
ããæç¹ã§ããµã€ããéãå§ããåäœãé ãããŸãã ãã¹ãã£ã³ã°äŒç€Ÿãéå°ãªè² è·ãŸãã¯ãªãœãŒã¹ã®ãªãŒããŒã©ã³ã®ããã«ãµã€ãããããã¯ããããšãèµ·ãããŸãã ãã®ç¶æ³ã§äœããã¹ããïŒ
ãµã€ããé«ããããã©ãã£ãã¯ã䜿çšãå§ããŠãããããªãœãŒã¹ãéäžçã«äœ¿çšããã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ãããŠããããæ»æãè¡ãããŠãããããµã€ãããŠã€ã«ã¹ã«ææããŠããå¯èœæ§ããããŸãã ãããã«ããããããã®ã±ãŒã¹ã«ã¯ãã¹ãŠå ±éç¹ããããããã¯ãã¹ãŠã®ãã¹ãã£ã³ã°ãµã€ãã®ãã¹ãŠã®ãµã€ãã«ãšã£ãŠåé¡ã§ãã
ãããŠãPHPçšã®ãµãŒããŒã«ã€ããŠè©±ãå Žåããã®ãããªåé¡ã¯ããµãŒããŒäžã®ä»ã®éèŠãªç°å¢èšå®ãšåæ§ã«ãPHPã³ãŒãã®å®è¡æ¹æ³ã§ãã
ã³ãŒãã«åé¡ããããã©ããã«é¢ä¿ãªãããã©ãã£ãã¯ãå€ããã©ããã«é¢ä¿ãªããå€ãã¯ãµãŒããŒã®èšå®ã«äŸåããŸãã ãã¹ãŠã®èšèã空ã®èšèã«èãããããã§ã¯ãªãããã®èšäºã¯æžãããŠããŸãã
ãã®ã¬ãã¥ãŒã§ã¯ãæãäžè¬çãªDrupal 7.33ã³ã³ãã³ã管çãšã³ãžã³ã®1ã€ã«ã€ã³ã¹ããŒã«ãããµã€ãããã¹ãããŸãã
ãã¹ãã«ã¯ãPHPãã¹ãã£ã³ã°ã®1ã€ã®ã³ã³ããŒãã³ãã®ã¿ãéžæãããŸãã Nginxããã³Apache2 WebãµãŒããŒã mod_phpããã³php- fpm ã¢ãžã¥ãŒã« ãphpããŒãžã§ã³php53ããã³php56ããã¹ãã ã apcããã³opcacheãªããã£ãã€ã¶ãŒããµã€ãã®é床ã«ã©ã®ããã«åœ±é¿ãããã確èªããŸãã
ãã¡ããããããã®ãã©ã¡ãŒã¿ãŒã¯ããµã€ãã®é床ãäŸåããèšå®ã®äžéšã«ãããŸããã ããããæå³çã«
ã¬ãã¥ãŒãç¡éã«ããªãããã«ãããã«éå®ããŸãã
ãã®èšäºã¯ç¶ããŸãïŒ PHP 5.3-5.6ãš7.0ã®Drupalã³ãŒãå®è¡é床ã®æ¯èŒã Battle of Code Optimizers apc vs xcache vs opcache
ãçæ³ãã¯ã©ã¹ã¿ãŒã®ãããã¯ã«é¢ããä»ã®åºçç©ãèªãããšãã§ããŸãã
- ãçæ³çãªãã¯ã©ã¹ã¿ãŒã ããŒã3.1 MySQLãã«ããã¹ã¿ãŒã¯ã©ã¹ã¿ãŒã®ãããã€
- ãçæ³çãªãã¯ã©ã¹ã¿ãŒã ããŒã2.2ïŒã¢ã¯ã»ã¹ããããã¹ã±ãŒã©ãã«ãªWebãµãŒããŒãããžãã¹ãå®ãããã®æé«ã®ãã¯ãããžãŒ
- hetznerã®ä»®æ³ã¯ã©ã¹ã¿ãŒã«ã€ããŠ
- ããã³ããšã³ãïŒCentOSäžã®NGINX + KeepalivedïŒvrrpïŒ
- CentOSäžã®PerconaãŸãã¯Galeraã®HAPRoxyã Zabbixã§ã®èšå®ãšç£èŠ
- nginx + php-fpmããã³mariadbã«ä¹ã£ãZabbix 2.2
äžããããïŒ
- ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã Centos 6.7
- ããŒã¿ããŒã¹ãµãŒããŒïŒMariaDB 10.21
- ãã¹ãŠã®ãµã€ãã»ãã·ã§ã³ã¯memcacheã«ä¿åãããã»ãã·ã§ã³ã®ã»ããã¢ããé床ããµã€ãã®ããã©ãŒãã³ã¹ã«äžãã圱é¿ãåãé€ããŸãã
- ãã¹ãŠã®ãã¹ãã§ãããã³ããšã³ãã¯WebãµãŒããŒnginx 1.93ã§ãã Apache2ã®å ŽåãNginxã¯ãã©ã³ãµãŒãšããŠã ãã§ãªããéçãªæ»ãå€ãšããŠãæ©èœããŸãã Apache2ã䜿çšããªãæ§æã®å Žå-çŽæ¥WebãµãŒããŒã¯Nginxã§ã
- æ§æNginxããã³MariaDBã«ã¯ãæ倧ã®ããã©ãŒãã³ã¹ãéæããããšãç®çãšããå€ãã®æé©åãå«ãŸããŠããŸããããã¹ãã®ãã¹ãŠã®åå è ã«ãšã£ãŠããããã®èšå®ã¯åãã§ããããããããã®åœ±é¿ã¯ç¡èŠããå¿ èŠããããŸã
- opcacheããã³apcãã©ã¡ãŒã¿ãŒã¯ãã»ãšãã©ã®ãµã€ãã«æé©ã§æ±çšçã§ãããããBitrixã®æšå¥šäºé ããååŸãããŸã
ã©ã®ããã«ãã¹ãããŸããïŒ
ããŒã«ã«ãããã¯ãŒã¯äžã«zabbixãµãŒããŒãšãã®ã¿ã¹ã¯ãæ¯åãããŸãïŒ
- ãã¹ããµã€ãã®ã¡ã€ã³ããŒãžãéããããŒãžäžã®ç¹å®ã®ã³ã³ãã³ããåŸ ã¡ããµãŒããŒããã®å¿çãã³ãŒã200ã§ããããšã確èªããŸãã
- 次ã®ã¹ãããã¯ããµã€ãã®ç®¡çããã«ã§ã®æ¿èªã§ããããã¯ãé©åãªPOSTãªã¯ãšã¹ããéä¿¡ããããšã§è¡ãããŸãã ããŒãžäžã®ããã¹ããšå¿çã³ãŒããšåã蟌ã¿æšæºã®èª¿æŽã ãã®ã¹ãããã¯WebãµãŒããŒã®ã»ãŒãã¹ãŠã®ãµãã·ã¹ãã ã«é©çšãããå€ãã®ç¹ã§ãã®é床ã¯ããŒã¿ããŒã¹ãšã®å¯Ÿè©±ã®é床ã«äŸåããŸã
- æåŸã®ã¹ãããã¯ããµã€ã管çããã«ãçµäºããçµäºããŒãžã§å¿çã³ãŒããšããã¹ãã確èªããããšã§ã
- åã¹ãããã®æåŸã«ãzabbixã¯htmlã³ãŒãå ã®phpã³ãŒãã®ã¬ã³ããªã³ã°é床ã现å¿ã®æ³šæãæã£ãŠæž¬å®ããŠèšé²ãããã©ãŠã¶ãŒã«è¡šç€ºããŠãçµæã®ã°ã©ãã衚瀺ããŸã
- å被éšè ã«ã€ããŠãå€ã¯1æéèšé²ããããã®æéã®å¹³åå€ãçµæã«ãªããŸã
- ãã¹ãã¯ããŒã«ã«ãããã¯ãŒã¯å ã§è¡ããããããã€ã³ã¿ãŒãããæ¥ç¶ã®é床ã®çµæãžã®åœ±é¿ã¯é€å€ãããŸãã
- 䟿å®äžããã¹ãŠã®çµæãæé ã§è¡šç€ºããŸãã ã€ãŸã æåã®çµæãæãé ããªããŸãã ãã¹ãŠã®æ§æã¯æ¡ä»¶ä»ãã®çªå·ã®äžã«é 眮ãããŸãããããã«ãããçµæã®æ¹åæ§ãåäžããŸã
- ããããã£ãŒã-ã³ãŒãçæé床;å€ãé«ãã»ã©è¯ãã äžã®ã°ã©ã-ãµãŒããŒã®å¿çæéãšå€ãäœãã»ã©è¯ã
- ãã¹ãããããµã€ãã¯ç掻ãéããå®æçã«ããŒã¿ããŒã¹æäœãå®è¡ããã¹ã±ãžã¥ãŒã«ãããã¿ã¹ã¯ãå®è¡ããŸããããããã°ã©ãã®æ²ç·ãäžäžããçç±ã§ãã
ãã¹ãïŒ
1. opcacheãªããã£ãã€ã¶ãŒã䜿çšããªãNginx + php-fpm56
ã¢ãŒããã¯ãã£å¥-ããã¯æãé«åºŠãªãªãã·ã§ã³ã®1ã€ã§ãã ããã©ãŒãã³ã¹ã®é¢ã§-æ倧ã®å€±æã
ããã©ãŒãã³ã¹ã«ã¯å€ãã®ããšãæãŸããŸããããã®ãããªãªãã·ã§ã³ã¯ãApache2ã®ãªãã·ã§ã³ïŒ2ãããã¯ããã«åªããè² è·ã«èããŸãã ãŸãããã®ãªãã·ã§ã³ã¯RAMãããå¹ççã«æ¶è²»ããŸãã
2. Apache2 + apcãªããã£ãã€ã¶ãŒãªãã®mod_php53
æãå žåçãªãã¹ãã£ã³ã°ãªãã·ã§ã³ã 人æ°ã®ãããã¹ãã£ã³ã°ãããã€ããŒã®90ïŒ ããã®ãªãã·ã§ã³ã䜿çšããŠããŸãã php53ã¯éçºè ã«ãã£ãŠé·ãéãµããŒããããŠããŸããããã€ã³ã¿ãŒãããäžã«ã¯ãŸã ãã®ããŒãžã§ã³ã§åäœããŠããå€ãã®ãµã€ãããããŸãã
ãã®ãªãã·ã§ã³ã¯éåžžã«é ãã ãã§ãªããApache2ã¯ãŒã¯ãããŒã®äžè¶³ããµãŒããŒã®RAMäžè¶³ã®ããã«ãããã«å°ããªè² è·ã«é¥ããŸãã
3. opcacheãªããã£ãã€ã¶ãŒã䜿çšããªãApache2 + mod_php56ã®åçéšåã§ããNginxã«ãããã©ã³ã¹ãšéç
ãã®ãªãã·ã§ã³ã¯ãææ°ã®ãµã€ãã®ãœãªã¥ãŒã·ã§ã³ãšããŠäœæãããŸããã PHPã®ææ°ããŒãžã§ã³ãæäŸããããšãããã¹ãã£ã³ã°äŒç€Ÿã«ãã£ãŠæäŸãããŸãã äžè¬çãªèãã«ãããšããã®ããŒãžã§ã³ã®PHPã¯ä»¥åã®ãã®ãããé«éã§å®å šã§ããã¯ãã§ãã
æ®å¿µãªããããã¹ãŠã®ãµã€ãããã®ããŒãžã§ã³ã§å®å šã«åäœã§ããããã§ã¯ãããŸããã PHPã®ã»ãšãã©ãã¹ãŠã®æ°ããããŒãžã§ã³ã¯ãããã€ãã®å€ããŠãå®å šã§ãªããæ©èœã®ãµããŒããåæ¢ãããå€ããã³ãŒãã®æäœãäžæããŸãã
ãªããã£ãã€ã¶ãŒãªãã®Php56èªäœã¯ããªãé ããmod_phpã¯ã¯ã©ãã·ã¥ããè² è·ãããã£ãŠãããµãŒããŒäžã®ãã¹ãŠã®ã¡ã¢ãªãå æããåŸåããããŸãã
4. apcãªããã£ãã€ã¶ãŒã䜿çšããªãNginx + php-fpm53
ã³ãŒããªããã£ãã€ã¶ãŒã®ãšã©ãŒãåå ã§åé¡ãçºçããªãããã«ãããããªãé«åºŠãªæ§æã ãã®å Žåããäºææ§ã®ãããããŒãžã§ã³ã®PHPã€ã³ã¿ãŒããªã¿ãŒã䜿çšããããªãœãŒã¹ãéäžçã«äœ¿çšããApache2ããã³ãã«ããåé€ãããŸãã
5. Apache2 + mod_php53 + apcã®åçéšåã§ããNginxã«ãããã©ã³ã¹ãšéç
å¥ã®äžè¬çãªããªãšãŒã·ã§ã³ã å€ãã®ãã¹ãã£ã³ã°äŒç€Ÿãããã䜿çšããããã©ã«ãã§äœ¿çšããããã³ã³ãããŒã«ããã«ã§ãªããã£ãã€ã¶ãŒãæå¹ã«ããããšãã§ããŸãã
éåžžãApache2ã¯ããªã³ã¯å€æãCNCãªã©ã®.htaccessã«ãŒã«ããã®ãŸãŸæ®ããŸãã
ãªããã£ãã€ã¶ãŒã䜿çšããªããªãã·ã§ã³ãšæ¯èŒããŠã3.5åã®é床åäžãåŸãããŸãã
ApacheèªäœïŒç¬èªã®ã¢ãžã¥ãŒã«mod_phpã䜿çšïŒã¯ãphp-fpmã䜿çšããããŒãžã§ã³ãããäœæ¥ã«å€ãã®ãªãœãŒã¹ãæ¶è²»ããŸãã Apache2ã¯ãã¢ãžã¥ãŒã«ã®1ã€ãã¯ã©ãã·ã¥ãããããµãŒããŒã®RAMããã¹ãŠåããããããšãã¯ã©ãã·ã¥ããåŸåããããŸãã
6. Nginx + php-fpm53 + apc
è€éãª.htaccessãå¿ èŠãšããªãå€ããšã³ãžã³ã®ãµã€ãã«æé©ãªãªãã·ã§ã³
ããã¯ãé«è² è·äžã§æºè¶³ã®ããé床ãšä¿¡é Œæ§ã®é«ãåäœãå®çŸããããã«ãå€ããµã€ããäžããå¿ èŠãããå Žåã«äœ¿çšãããªãã·ã§ã³ã§ãã
7. Apache2 + php-fpm53 + apcã®åçéšåã§ããNginxã«ãããã©ã³ã¹ãšéç
è€éãª.htaccessãæã€ã¬ã¬ã·ãŒãµã€ãã®ãªãã·ã§ã³ã ããšãã°ãå€ãBitrixã€ã³ã¹ããŒã«ã
ããã¯ãã¬ã¬ã·ãŒãµã€ãã«æé©ã§ãã ãã®æ§æã¯ãé«è² è·ã«èããäºææ§ããããéåžžã«çç£çã§ãã
.htaccessã«ãŒã«ãšApache2ã¢ããªã³ãå¿ èŠãªå Žåã«æé©ã§ãã
æ¬ ç¹ã®1ã€ã¯phpã®å€ãããŒãžã§ã³ã§æŽæ°ãããŠããªãããŒãžã§ã³ã§ãããéžæã®äœå°ããªãå Žåã¯ãããæè¯ã®ãªãã·ã§ã³ã§ãã BitrixãJoomlaããã®ä»ã®äžè¬çãªCMSã®ææ°ããŒãžã§ã³ã§ã¯ãªããå€ãããŒãžã§ã³ã«æé©ã§ãã
8. Apache2 + mod_php56 + opcacheã®åçéšåã§ããNginxã«ãããã©ã³ã¹ãšéç
mod_phpã®æ¬ ç¹ããã¹ãŠåãããããªãçç£çã§ããããªãœãŒã¹ãéäžçã«äœ¿çšããæ§æã
ååã«é«éã§ãããè² è·ãããããšãµãŒããŒã®ã¡ã¢ãªãäžè¶³ããé床ãå€§å¹ ã«äœäžããŸãã
9. Nginx + php-fpm56 + opcache
æãçç£çãªãªãã·ã§ã³ã
ããã¯ãææ°ã®ãã¹ãŠã®ãµã€ãã«æé©ãªãªãã·ã§ã³ã§ãã è² è·ãååã«ä¿æããããã©ãŒãã³ã¹ã®é¢ã§æé«ã®çµæã瀺ããŸãã ããã¯ãŸãã«ãã¿ã¹ã¯ããµã€ãã®ããã©ãŒãã³ã¹ãæé©åããé床ãäžããããšã§ãããšãã«äœ¿çšãããªãã·ã§ã³ã§ãã
å¯äžã®æ¬ ç¹ã¯ã.htaccessã䜿çšã§ããããã¹ãŠã®mod_rewriteã«ãŒã«ãNginxæ§æã«æžãæããå¿ èŠãããããšã§ãã
Apache2ã¢ãžã¥ãŒã«ãæ©èœããŸããã 䜿çšãããŠããå Žåããã®ãªãã·ã§ã³ã¯æ©èœããŸããã
10. Apache2 + php-fpm56 + opcacheã®åçéšåã§ããNginxã«ãããã©ã³ã¹ãšéç
.htaccessãå¿ èŠãªãµã€ãã«æé©ãªãªãã·ã§ã³ã Bitrixã®æ°ããããŒãžã§ã³ã«æé©ã§ãã
php-fpmã«ããè² è·ãååã«ä¿æããŸãã ã»ãšãã©ã®ãµã€ãã§ãã®ãªãã·ã§ã³ãç©æ¥µçã«äœ¿çšããŠããŸãã
ãã¹ããµã€ãã®ããŒã ããŒãž | |||
æ§æçªå· | å»ºç¯ | å¹³åããŠã³ããŒãé床kbã | å¹³åå¿çããªç§ã |
1 | Nginx + opcacheãªããã£ãã€ã¶ãŒãªãã®php-fpm56 | 77.04 | 103.6 |
2 | Apache2 + apcãªããã£ãã€ã¶ãŒãªãã®mod_php53 | 78.79 | 103.98 |
3 | opcacheãªããã£ãã€ã¶ãŒã䜿çšããªãApache2 + mod_php56 | 78.85 | 102.38 |
4 | Nginx + apcãªããã£ãã€ã¶ãŒãªãã®php-fpm53 | 81.55 | 97.88 |
5 | Apache2 + mod_php53 + apc | 303.37 | 29.36 |
6ã | Nginx + php-fpm53 + apc | 312.33 | 24.73 |
7ã | Apache2 + php-fpm53 + apc | 339.63 | 23.32 |
8ã | Apache2 + mod_php56 + opcache | 484.96 | 16.91 |
9ã | Nginx + php-fpm56 + opcache | 546.34 | 14.08 |
10ã | Apache2 + php-fpm56 + opcache | 571.14 | 13.78 |
ãã¹ããµã€ãã®ç®¡çãµã€ãã§ã®æ¿èª | |||
æ§æçªå· | å»ºç¯ | å¹³åããŠã³ããŒãé床kbã | å¹³åå¿çããªç§ã |
1 | Nginx + opcacheãªããã£ãã€ã¶ãŒãªãã®php-fpm56 | 67.51 | 239.01 |
2 | Apache2 + apcãªããã£ãã€ã¶ãŒãªãã®mod_php53 | 64.61 | 257.51 |
3 | opcacheãªããã£ãã€ã¶ãŒã䜿çšããªãApache2 + mod_php56 | 66.75 | 242.42 |
4 | Nginx + apcãªããã£ãã€ã¶ãŒãªãã®php-fpm53 | 68.79 | 233.15 |
5 | Apache2 + mod_php53 + apc | 173.81 | 94.26 |
6ã | Nginx + php-fpm53 + apc | 173.3 | 91.3 |
7ã | Apache2 + php-fpm53 + apc | 182.1 | 90.5 |
8ã | Apache2 + mod_php56 + opcache | 218.35 | 77.55 |
9ã | Nginx + php-fpm56 + opcache | 252.83 | 62.25 |
10ã | Apache2 + php-fpm56 + opcache | 262.8 | 60.85 |
ãã¹ããµã€ãã®ç®¡çé åãããã°ã¢ãŠããã | |||
æ§æçªå· | å»ºç¯ | å¹³åããŠã³ããŒãé床kbã | å¹³åå¿çããªç§ã |
1 | Nginx + opcacheãªããã£ãã€ã¶ãŒãªãã®php-fpm56 | 41.01 | 184.49 |
2 | Apache2 + apcãªããã£ãã€ã¶ãŒãªãã®mod_php53 | 42,42 | 188.97 |
3 | opcacheãªããã£ãã€ã¶ãŒã䜿çšããªãApache2 + mod_php56 | 42.06 | 188.37 |
4 | Nginx + apcãªããã£ãã€ã¶ãŒãªãã®php-fpm53 | 45.48 | 169.15 |
5 | Apache2 + mod_php53 + apc | 190.1 | 41.87 |
6ã | Nginx + php-fpm53 + apc | 185.92 | 41.24 |
7ã | Apache2 + php-fpm53 + apc | 202.78 | 39.21 |
8ã | Apache2 + mod_php56 + opcache | 315.56 | 26.23 |
9ã | Nginx + php-fpm56 + opcache | 373.19 | 20.43 |
10ã | Apache2 + php-fpm56 + opcache | 381.21 | 20.57 |
ãã®çµæïŒ
- ç§ã®ãã¹ãã§ã¯ãæå³çã«Nginxã®éçãªæ»ãå€ã«åæ Œãããããå®éã«ã¯ãApache2ã®ãã¹ãŠã®ããªã¢ã³ãã¯é ããªãå¯èœæ§ããããŸãã ããã¯ãPHPã€ã³ã¿ãŒããªã¿ãŒã®é床ã枬å®ããçµæã«å¯Ÿããéçåççã®åœ±é¿ãæé€ããããã«è¡ãããŸãã Apache2ã®åŒ±ç¹ã®1ã€ã§ãããšåæã«Nginxã®åŒ·ã¿ã¯ãéçåºåã®é床ã§ãã ç¹ã«ãé«è² è·æã«é¡èã§ãã ããã«ãNginxã¯ãé ãæ¥ç¶ããæ»æããåŸåãå°ãªã
- mod_phpã¯å©çšå¯èœãªãã¹ãŠã®ãµãŒããŒã¡ã¢ãªãéåžžã«ãã°ããå æããããŒãæã«ããã©ãŒãã³ã¹ã倱ããŸã
- php-fpmã¯ãèšå®ã§ã¡ã¢ãªãããå¹ççã«ãããå®å šã«ãããæè»ã«æ¶è²»ããŸãã å Žåã«ãã£ãŠã¯ãé«éã§é«è² è·ããããŸããã
- ãã®ãã¹ãã®ç¹ç°æ§ã¯çããããã§ã¯Drupalãšã³ãžã³ã®æ©èœã確èªããŸãããä»ã®ãšã³ãžã³ã®åäœã¯ç°ãªãå ŽåããããŸãããäžè¬çãªåŸåã¯åãã§ãã
ãããŠæãéèŠãªããš-ãµã€ãã®é床ã¯ããµãŒããŒãŸãã¯ãã¹ãã£ã³ã°ã®æ§æã«äŸåããŸãã é©åãªã¢ãŒããã¯ãã£ãéžæãããšããµã€ãã®é床ã5åã«åäžããŸãã
質åãå°é£ããŸãã¯ã¢ããã€ã¹ãå¿ èŠãªå ŽåïŒ
ç§ã®ãããã£ãŒã«ã®é£çµ¡å