ISUCON7ã®äºé¸ã«è½ã¡ã¦æããã®ã§ãå¾¹åºçã«å¾©ç¿ããããã®Dockerç°å¢ãæ§ç¯ãã¾ãã
俺ã®ISUCONã¯ããããã ...ï¼ï¼äºé¸ã¯æéãã¦ãã¾ãï¼
ã
ISUCON7ãç²ãæ§ã§ããï¼ã楽ããã»åå¼·ã«ãªãã»äº¤æµãæ·±ã¾ããã®ä¸æåæã£ãã¤ãã³ããéå¬ãã¦ãã¦ã ããéå¶ã®æ¹ã ãé¢ä¿è ã®æ¹ã ãæ¬å½ã«ãããã¨ããããã¾ããã
ã
æ¯å¹´æãã®ã¯ããæ®æ®µãã£ã¦ãªããã¨ã¯ã§ããªããªã¼ãã¨ãããã¨ã§ãããä»äºã ãã§ã¯æè¡åã®å¹ ã¯åºãããªããã¨æ¯å¹´ã®ããã«æãããã¾ããããããæ°ä»ããå¾ãããã ãã§ãISUCONã¯ç´ æ´ãããã§ãããããããæ©ä¼ã«å·¡ãä¼ããããããã®ãã£ã³ã¹ãç¡é§ã«ã¯ãããã¯ãªããªã¨æãã¾ããã
ã
ããã§ã以ä¸ã®ææããããISUCON7ã®äºé¸åé¡ã®Dockerç°å¢ã使ãã¾ããã
- ä¾å¹´ä»¥ä¸ã«æããã£ãã®ã§å¾¹åºçã«å¾©ç¿ããã
- ããããçããã®ããã°ãåºå°½ããã¦ãè¯ãæ å ±ãåºã¾ãã¤ã¤ãããã
- ãããã試ãããã«ããä½åº¦ã§ãå£ãã¦ä½åº¦ã§ãèãç°å¢ããæ¬²ãã
- ãéã¯ç¯ç´ãããï¼åå®
- ãã¼ã«ã«ã§ãµã¯ãã¨ã§ããã便å©ãã
- ããæ©ä¼ã ãDockerã®åå¼·ã«ããªãã ãã
ãªãã¸ããªã¯ä¸è¨ã§ãã
ãããä½ã£ã¦ããæã« matsuu ããã® docker-isucon/isucon7-qualifier ãæºåããã¦ãããã¼ï¼ï½ãã¨æã£ã¦ãã¾ããããèªåã§ä½ãå§ãã¦ãã¾ã£ããã ããå ¬éãããï¼ã¨ãããã¨ã§ãä»åããã°ã«æ¸ãã¦ãã¾ãã
ã
ã
ä½¿ãæ¹
READMEã«è©³ããæ¸ãã¦ããã¾ãããç°¡åã«ããã«ãè¨è¼ãã¾ãã
æ§æ
è¤æ°å°æ§æã§ãã以ä¸ã®ã³ã³ãããç«ã¡ä¸ããã¾ãã
serviceå | å½¹å² |
---|---|
app01 | webãµã¼ãã¼ |
app02 | webãµã¼ãã¼ |
app03 | dbãµã¼ãã¼ |
bench | benchãµã¼ãã¼ |
app01, app02ããapp03ã®mysqlã«æ¥ç¶ãã¦ãã¾ãã
app0Xç³»ã¯ãã¡ã¢ãª1GBãCPU1ã³ã¢ã¨ããå¶éããã¦ãã¾ãã
ãã³ããã¼ã¯ãåããã¾ã§
é©å½ã«cloneãã¦ãã ããã
$ git clone https://github.com/at-grandpa/isucon7-qualify-docker.git $ cd isucon7-qualify-docker.git
ããã¦ã
$ make up
ã§ãåã³ã³ãããç«ã¡ä¸ããã¾ããé常ãbuildã«ã¯30åãããæããã®ã§ãããDocker Hubã«imageãpushãã¦ãããã®ã§ãæ°åã§çµããã¨æãã¾ããæ¬¡ã«ãgoã®webãµã¼ãã¼ãç«ã¡ä¸ãã¾ãã
$ make app/start/go
ç«ã¡ä¸ãã£ããããã©ã¦ã¶ã§ç¢ºèªãã¦ãã ããã
app01
-> http://0.0.0.0:8081/app02
-> http://0.0.0.0:8082/
ã¢ããªã±ã¼ã·ã§ã³ã®åä½ç¢ºèªãã§ããããã³ããã¼ã¯ãããã¾ãã
$ make bench/start BENCH_TARGET_HOSTS=app01,app02
BENCH_TARGET_HOSTS=app01
ã¨ããã°ãapp01ã ããã³ããã¼ã¯ãããããã¾ãã
ãã³ããã¼ã¯çµæã¯ä¸è¨ã§ç¢ºèªã§ãã¾ãã
$ make bench/result
ã¹ã³ã¢ã®ã¿è¦ããå ´åã¯ã以ä¸ãå®è¡ãã¦ãã ããã
$ make bench/score
ã
ãã®ä»
ã¡ã¢ãªãCPUã®å¶é
äºé¸ã§ã¯ãµã¼ãã¼ã¹ããã¯ãå°ãè²§å¼±ã§ããã確ãã¡ã¢ãª1G/CPU1ã³ã¢ã ã£ãã¨æãã¾ãããããdocker-compose.ymlã§å®ç¾ãããã£ãã®ã§ãããversion 3 ã§ã¯ swarm mode ã§ããå¶éããããããªãããããä»åã®docker-compose.ymlã§ã¯ version 2 ã使ç¨ãã¦ãã¾ãããã®ãããã§ãã¡ã¢ãªå¶éã¨CPUã³ã¢æ°ã®å¶éãããããã¨ãã§ãã¾ããã
$ make attach/app01 /usr/local/bin/docker exec -it isucon7-app01 /bin/bash isucon@1c408cc20d0c:~/isubata$ nproc 1
$ docker stats isucon7-app01 CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS isucon7-app01 0.03% 39.89MiB / 1GiB 3.90% 613MB / 68.2MB 33.4MB / 12.3kB 17
makeã¿ã¹ã¯ããä»ã®è¨èªã®ã¢ããªã±ã¼ã·ã§ã³ãèµ·å
ç¾å¨ãmake app/start/python
㨠make app/start/go
ãã使ãã¦ãã¾ãããä»ã®è¨èªã§ã使ãããããªã¨æãã¾ããããèªåã¯ç´è¿ã§ã¯goã使ã£ã¦å¾©ç¿ããã®ã§ãä»ã¯å¥ã«ãããªãããªã¨æã£ã¦å®è£
ãã¦ãã¾ãããä½åã®ããæ¹ã¯ãã²PRããé¡ããã¾ãã
ã¾ããåºæ¬ãã®ãããã¯makeããèµ·åããã®ã§ã¯ãªããã³ã³ããã«å ¥ã£ã¦ããããæä½ããã»ããä½ãã¨èéãå¹ãããªã¨æãã¾ãã
TODO
- 帯åå¶éã®ããæ¹ãã¾ã ã°ã°ã£ã¦ããªãã®ã§ããã¡ãã追ã å®è£ ã§ããããªã¨æã£ã¦ã¾ã
- å ¨è¨èªã®åä½ç¢ºèªã¯ã¾ã ã§ãã¦ãã¾ãã
ã
俺ã®ISUCONã¯ããããã
ISUCONã¯ã復ç¿ãã¦ãã³ããã ã¨æãã¾ããå¾©ç¿æãä¸çªåå¼·ã«ãªãã¨æãã¾ãããã復ç¿ããããã«äºé¸ã«åå ãããã ï¼ãã¨è¨ã£ã¦ãéè¨ã§ã¯ãªãã¨æãã¾ããåå ããªãã¨æããããã®ãã®ã¢ããã¼ã·ã§ã³ã¯çºçãã¾ããããããã¨ãåèå®è£ ãè¶ é«éã§å ¬éãã¦ãã ãã£ãéå¶ã®æ¹ã ãæ¬å½ã«ãããã¨ããããã¾ããã復ç¿ãããã¦ãç°å¢æ§ç¯ã¾ã§ãããããã¨ãããã¼ãã«ã¯çµæ§é«ãã®ã§ãæ¬å½ã«å©ããã¾ããã
ä»å使ãããã®Dockerç°å¢ã§ã骨ã®é«ã¾ã§ISUCON7ãããã¶ãã¤ãããã¨æãã¾ãããããã¾ãããã°ã«æ¸ããã¨æãã¾ãã
ã¾ã å®éã«ãã¥ã¼ãã³ã°ãè¡ã£ã¦ããªãã®ã§ãããç²ãè¦ã¤ãã£ããPRãISSUEããå¾ ã¡ãã¦ããã¾ãmm