ããã«ã¡ã¯ããããã¯ããã°ãã¯ã楽楽販売ã®éçºããã£ã¦ãã@tacloseã§ãâ
ISUCONã«åå ããã®ã¯ããã§ï¼åç®ã§ããã
ä»åã¯ï¼ä½ã§ããï¼
å¾®å¦ï¼ã¨ãè¨ããªãã§ï¼é å¼µã£ãæ¹ã§ããï¼éãè¯ãã£ãæ¹ã§ããï¼ï¼ã¨è¨ãããï¼ï¼
ä»æ¥ã¯ãããªISUCON14ãã©ããªæãã ã£ãã®ããæ¯ãè¿ã£ã¦ãããã¨æãã¾ãï¼
è¨äºã®æ¦è¦ã»æ³å®èªè
- æ³å®èªè
- ä»å¹´ISUCONåºããã©ãæããæããããæ¹
- æ¥å¹´ISUCONåºã¦ã¿ããããªï¼ã¨æãæ¹
- è¨äºã®æ¦è¦
- ISUCON14ã®ç´°ãããã¥ã¼ãã³ã°ãã¤ã³ãã¯ãã¾ãåãä¸ãã¾ããã
- Git管çãMakefileã®æºåããã¦ãã¦éã§ã¯ããã¾ããã
- ISUCONã«ææ¦ããæºåãç·´ç¿ãå½æ¥ã®å°ããã¤ã³ããã¾ã¨ããä½é¨è«ã§ãã
ã§ã¯æ©éãå½æ¥ã¾ã§ã®æºåããæ¯ãè¿ã£ã¦ã¿ã¾ãããã£
ISUCONã®æºå
ååã®åçããã¯ãã¾ã
11æããè¡ãããä½æ¦ä¼è°ã§ã¯ä»¥ä¸ã®è©±ãåºã¾ããã
ååã®æå ã¯ãã°ãæºåä¸è¶³ãç·´ç¿ä¸è¶³ï¼ä»¥ä¸ã®ãããªç¤¾å ãã³ãºãªã³ãéå¬ãããããã®ç¥èéã¯ãã£ããã®ã®ã tech-blog.rakus.co.jp
å½æ¥ã¯8æéã¨ããéãããæéã§å®è·µããã®ã¯è³é£ã®æ¥ã§ããã
ååã®åçç¹
- ãµã¼ãæ§æå¤æ´æã®ã³ãã³ãæºåãä¸ååã ã£ãï¼Makefileã«ãã³ããã¼ã¯åã®ã³ãã³ããæºåãããªã©ï¼ã
- ãµã¼ãæ§æå¤æ´æã«ãããã¯ã¼ã¯è¨å®ã§ã¢ã¿ãã¿ãã¦0ç¹ã«ãªããããã
ããã§ä»åã¯äºåæºåã¨ãµã¼ãæ§æå¤æ´ã®ç·´ç¿ã«éããç½®ããã¨ã«ãã¾ããã
ç·´ç¿ã¯ISUNARABEï¼
ISUNARABE ã使ããæ¬çªããªããã®ç·´ç¿ããã¾ããã ç¹ã«èª²é¡ã ã£ãAWSã§ã®3å°ãµã¼ãã®ä½¿ãæ¹ãååã®å½¹å²åæ ãéç¹çã«ç·´ç¿ãã¾ãããååã«æ¯ã¹ãã¨å°ãªãç·´ç¿æéã§ããããå¹æã¯ããã¾ããã
ISUCONå½æ¥
ISUCONã®ååï¼ååãã³ããã¼ã¯ã¾ã§ã«ããäºï¼
ç§ãã¡ã®ãã¼ã ã§ã¯ä»¥ä¸ã®ä½æ¥ãåæ ãã¦é²ãã¾ããã
- configãã¢ããªãGit管çä¸ã«ç½®ã
- makeã³ãã³ãã§è¨å®ãã¡ã¤ã«ãã¢ããªããããã¤
- MySQLãnginxã®åæè¨å®ï¼slow queryã®ãã°åºåãªã©ï¼
ä½æ¥ãçµãã£ããååãã³ããã¼ã¯ãå®è¡ã
10æåæç¹ã§ã¹ã³ã¢1000ç¹ã§ããã
ååå¾ã®æ¬¡ã®ä¸æï¼DBã®INDEXè¦ç´ã
nginxãã°è§£æã§é ãAPIã¯åããã¾ãããã¾ãã¯DBã®INDEXãæ´åããã®ãå¹ççã pt-query-digestã§è§£æãã30åï½1æéã§å¯¾å¿ãã¾ããããã®æç¹ã§ã¹ã³ã¢ã¯3800ç¹ã
åèªãæªãããã¤ã³ããéç¹çã«æ»ãã
æããã¼ã ã¯å ¨å¡éæé¨éï¼
- nginxãã°ããããã¡ã¤ã©ã¼çµæãè¦ã¦å¦çæéãé·ãç®æãæ¢ã
- æªããç®æãèªç±ã«æ»ãã
13æåã§ã¹ã³ã¢8000ç¹ã15æã«15000ç¹ã16æã«18000ç¹ã¾ã§å°éãã¾ããã
4æ以éï¼ãµã¼ãæ§æãçå£ã«èãã
3å°ãµã¼ãã®ä½¿ãæ¹ãåæ¤è¨ã
- 1å°ãnginx+ã¢ããªç¨ããã1å°ãDBç¨ã«å²ãå½ã¦
16æåã§ã¹ã³ã¢26000ç¹ã
æå¾ã®ãã¥ã¼ãã³ã°
ãµã¼ãæ§æå¤æ´ã«ä¼´ããnginxãMySQLã®è¨å®å¤ãè¦ç´ãã
17æåã§ã¹ã³ã¢37000ç¹ã
æçµçµæ
39957ç¹
ä»åã®ISUCONã®æ¯ãè¿ã
è¯ãã£ãç¹
ãã¼ã ã¡ã¤ãã«æµã¾ãããã¨ãæè¬æè¬ã§ãï¼ãç²ãæ§ã§ããï¼
åçç¹
N+1åé¡ã¸ã®å¯¾å¦ãä¸ååã ã£ããã¨ã
- ææ¬çãªè§£æ±ºçãæãã¤ãã¦ãæéå ã§ã¯èºèºãã¦ãã¾ãããã£ãã·ã¥ã§éãã¦ãã¾ã£ãã
å ´æ°ãè¸ãã°ãããã£ãåæã磨ãããã¨æãã®ã§ã次ååææ¦ãããã¨æãã¾ãï¼
æå¾ã«
ããããISUCONå§ãã人ãå§ããã°ããã®äººã«åèã«ãªãã°å¹¸ãã§ãï¼
ããããããISUCONã¯ããããï¼ã¨ããæ¹ã¯ 目指せISUCON!!社内WEBパフォーマンス改善ハンズオンのすすめ - RAKUS Developers Blog | ラクス エンジニアブログ ã§ãç´¹ä»ãã¦ããæ¸ç±ãèªã¾ãããããã¼ã«ã«ã§ããã©ã¼ãã³ã¹ãã¥ã¼ãã³ã°ãç·´ç¿ãã¦ããããäºããå§ããã¾ãï¼
ã©ã³ã¯å¤ã§çµãã£ã¦ãé常ã«å¦ã³ãå¤ã楽ããã¤ãã³ããªã®ã§ãæ¯éã¿ãªãããã©ã¤ãã¦ã¿ã¦ãã ããï¼ï¼