ISUCONã«åå ããä¼ç¤¾ã®ååãå¿æ´ããããã«ãISUCONã®äºé¸çªç ´ããä¸ã§å¿ è¦ãªãªãã¬ã¼ã·ã§ã³æè¡ãç´¹ä»ãã¾ãã èªåãISUCONã«ååºå ´ããã¨ãã«ç¥ãããã£ããã¨ãæèãã¦æ¸ãã¦ã¿ã¾ããã ä¸å¿ãéå»2åäºé¸çªç ´ããçµé¨ãããã®ã§ããããªãã«ã¯åèã«ãªãã¨æãã¾ãã ã¨ãã£ã¦ããä¸èº«ã¯è³ã£ã¦æ¨æºçãªå 容ã§ãã ç¹ã«ããã¼ã ã«ãªãã¬ã¼ã·ã§ã³ã¨ã³ã¸ãã¢ãããªãå ´åãå½¹ã«ç«ã¤ã¨æãã¾ãã
ä»å¹´ã®ISUCON6ã¯éå¬éè¿ã§ãã¾ã äºé¸ç»é²åä»ä¸ã§ãã
â» æä¸ã®è¨å®ãã¡ã¤ã«ãªã©ã¯ãã¼ã¸ã§ã³ããã®ä»ã®ç°å¢ãç°ãªãã¨åããªãã£ããããã®ã§å¿ ãæ¤è¨¼ãã¦ãã使ç¨ãã¦ãã ããã
ISUCONã§ããã㨠(Goal)
ISUCONã§ãããã¨ã¯ãä¸ããããã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ãã¨ã«ããé«éåãããã¨ã ãã§ãã é«éåã¨ä¸å£ã«è¨ã£ã¦ããè¤æ°ã®ã´ã¼ã«ãããã¾ããã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã®å ´åã¯ä»¥ä¸ã®ãããªãã®ã§ãããã
- ã¬ã¹ãã³ã¹ã¿ã¤ã ãå°ãã
- ã¹ã«ã¼ããã (req/s) ã大ãã
- CPUãã¡ã¢ãªãªã©ãªã½ã¼ã¹æ¶è²»éãå°ãã
ISUCONã§ã¯ãåºæ¬çã«ã¯ã¬ã¹ãã³ã¹ã¿ã¤ã ãå°ãããããã¨ãç®æãã¾ãã ããã¯å®éã®ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã«ããã¦ããã¦ã¼ã¶ä½é¨ã«æãç´çµããã¬ã¹ãã³ã¹ã¿ã¤ã ãæ¹åãããã¨ãéè¦ãªã®ã§çã«ããªã£ã¦ãã¾ãã
ã¨ã¯ãã£ã¦ãããªãã«ã®æ³åã«ãããå®å®ããç³»ã«ããã¦ãã¬ã¹ãã³ã¹ã¿ã¤ã ãå°ãããªãã°ãã¹ã«ã¼ãããã¯åä¸ãããããã¬ã¹ãã³ã¹ã¿ã¤ã ã¨ã¹ã«ã¼ãããã¯ç¸é¢ãã¾ãã
ãªã½ã¼ã¹æ¶è²»éã®æ¹åã¯ãã¬ã¹ãã³ã¹ã¿ã¤ã ã«å¯ä¸ããã¨ããããã¯ããµã¼ã管çã«ã¾ã¤ãã人çã¾ãã¯ééçãªã³ã¹ããä¸ãããã¨ã«å¯ä¸ãã¾ãã ä¾ãã°ã¡ã¢ãªãä½ã£ã¦ããã®ã«ãã¡ã¢ãªä½¿ç¨éãåæ¸ãã¦ããã¬ã¹ãã³ã¹ã¿ã¤ã ã«ã¯å½±é¿ãã¾ããããã ãããããã£ãç¡é§ãçããã¨ã§ãã¢ããªã±ã¼ã·ã§ã³ã®å¦çå¹çããããªããçµæã¨ãã¦ã¬ã¹ãã³ã¹ã¿ã¤ã ãè¯ããªããã¨ã¯ããã¾ãã
ISUCONã¯ãå ·ä½çã«ã¯ã以ä¸ã®ãããªè¦ç´ ã§æ§æããã¦ããã¨èãã¾ãã
- ãµã¼ããå«ãç°å¢æ§ç¯
- OSã»ããã«ã¦ã§ã¢ã®é¸æã¨ãã¥ã¼ãã³ã°
- ã¢ããªã±ã¼ã·ã§ã³ãã¸ãã¯ã¨ãã¼ã¿æ§é ã®æ¹å
ããã§ã¯ãåè 2ã¤ããªãã¬ã¼ã·ã§ã³ã®é åãå¾è ãããã°ã©ãã³ã°ã®é åã¨ãã¾ãã å¿ ãããããªãã¬ã¼ã·ã§ã³è¦å¡ãå¿ è¦ã¨ãããã¨ã¯ãªããããã¾ã§é åãªã®ã§ãåæ ãããã¨ãå¤ãã¨æãã¾ãã èªåã®å ´åãéå»2åã¨ãããã¼ã ã®æ§æä¸ããªãã¬ã¼ã·ã§ã³ã¾ããã¯ã»ã¼å ¨é¨1人ã§ãã£ã¦ãã¾ããã
ISUCONã®èãæ¹ (Principles)
èªåãèããISUCONã®ååã¯ãããªãã¬ã¼ã·ã§ã³ï¼System Engineeringï¼ã§ç¹ãå®ãã ããã°ã©ãã³ã°ï¼Software Engineeringï¼ã§ç¹ãã¨ããã§ãã
OSã»ããã«ã¦ã§ã¢ã®ãã¥ã¼ãã³ã°ãåçãªå ç¹è¦ç´ ã«ãªããã¨ã¯ãã¾ãããã¾ããã ãã®ã¬ã¤ã¤ã®ãã¥ã¼ãã³ã°ã¯ãªã½ã¼ã¹æ¶è²»éãå°ãããããã¨ã«å¯ä¸ãããã¨ãå¤ãããã§ãã
ãã ãããã¥ã¼ãã³ã°ãã¦ããªãããã«ãåçã«æ§è½ãå£åãããã¨ã¯ããã¾ãã ä¾ãã°ãInnoDBã®ãããã¡ãã¼ã«ãµã¤ãºãå°ãããã¦ããã¨ããã¼ã¿ãã¡ã¢ãªã«ä¹ãåããã大éã®ãã£ã¹ã¯I/Oãçºçããã¹ã³ã¢ã大ããä¸ããã¯ãã§ãã
ãã¡ãããã¢ããªã±ã¼ã·ã§ã³ãã¸ãã¯ãèãã¨ããã ãOSãããã«ã¦ã§ã¢ãä»äºãããå²åã大ãããªãããã OSãããã«ã¦ã§ã¢ã®ãã¥ã¼ãã³ã°ã«ããã¹ã³ã¢ã伸ã³ããã¨ã¯ããã¾ãã
ããã¯ãã£ã¦ããåºæ¬çã«ã¹ã³ã¢ã伸ã°ãæ段ã¯ãã¢ããªã±ã¼ã·ã§ã³ãã¸ãã¯ã¨ãã¼ã¿æ§é ã®æ¹åã§ãã ããã¯å®éã®ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³éçºã®ç¾å ´ã§ãåããã¨ãè¨ãã¾ãã éãªä½æã«ããã¨ãããã©ã¼ãã³ã¹ã®æ¯é çã¯ãã¢ããªã±ã¼ã·ã§ã³ã8å²ãOSã»ããã«ã¦ã§ã¢ã2å²ç¨åº¦ï¼è¦åºå ¸ï¼ã ã¨æã£ã¦ãã¾ãã
ISUCONã«ããããªãã¬ã¼ã·ã§ã³
ç°å¢æ§ç¯
äºé¸ã®å ´åã¯ãã¯ã©ã¦ãç°å¢ã»ããã¢ãããå¿ è¦ã§ããISUCON3ãISUCON4ã§ã¯AWSãISUCON5ã§ã¯GCEãISUCON6ã¯Azureã§ãã ã¢ã«ã¦ã³ãä½æãã¤ã³ã¹ã¿ã³ã¹ä½æãã¡ã¤ã³ã§ãã å½æ¥ã®ã¬ã®ã¥ã¬ã¼ã·ã§ã³ã«ãä¸å¿æé ã¯è¨è¼ãããã¯ãã§ãããäºåã«è§¦ã£ã¦ããã¨æ¬çªã§æ··ä¹±ããã«æ¸ãã¨æãã¾ãã
ãµã¼ããã°ã¤ã³ç°å¢
ä¾å¹´ã§ããã°ã/home/isucon
以ä¸ã«å¿
è¦ãªã¢ããªã±ã¼ã·ã§ã³ä¸å¼ãå
¥ã£ã¦ãã¾ãã
isuconã¦ã¼ã¶ããããªããã° (useradd -d /home/isucon -m isucon
) ãªã©ã§ä½æãã¾ãã
ããã«ã/home/isucon/.ssh
以ä¸ã«å
¬ééµèªè¨¼ããããã®å
¬ééµãè¨ç½®ãã¾ãã
/home/isucon/.ssh/authorized_keys
ãã¡ã¤ã«ãä½æãã.ssh
ãã£ã¬ã¯ããªã®ãã¼ããã·ã§ã³ã¯700ãauthorized_keys
ãã¡ã¤ã«ã®ãã¼ããã·ã§ã³ã¯600ã§ãããã¨ã確èªãã¾ããï¼ãã®è¾ºã®ãã¼ããã·ã§ã³ãããããã¨ãã°ã¤ã³ã§ããªãï¼
ã¡ã³ãã¼åã®ã¦ã¼ã¶ãä½æããã®ã¯é¢åãªã®ã§ãå
±éã¦ã¼ã¶1ã¤ã ãã§åé¡ãªãã¨æãã¾ãã
ãããã¤èªåå
Capistranoã®ãããªå¤§ãããªãã®ã¯ä½¿ããªãã¦è¯ãã®ã§ã以ä¸ã®ãããªéã¹ã¯ãªããã§ãããã¤ãèªååãã¾ãããã
ãã£ã¦ãããã¨ã¯Slackã¸éå§ãããã¤éç¥ãgit pullãMySQLãRedisãmemcachedãappãnginxã®åèµ·åãSlackã¸ãããã¤å®äºéç¥ãããã§ãã MySQLãnginxãããã¦ããã®ã¯ãè¨å®ãã¡ã¤ã«ãæ´æ°ããã¯ããããåèµ·åããå¿ããã¨ãããã¨ãããããã®ã§ãã¾ã¨ãã¦åèµ·åãã¦ãã¾ãã¾ãã æ¥ç¶å ã®ããã»ã¹ããã¬ã¨ããã¾ãåæ¥ç¶ãããªãå ´åããªãã¯ãªãã®ã§ãåèµ·åããã®ã¯ååããã¯ã¨ã³ããããä¸å¿ããã§ãã
ãªã½ã¼ã¹å©ç¨çææ¡ã¨ãã°ã®ç¢ºèª
ããã§ãããªã½ã¼ã¹ã¨ã¯CPUãã¡ã¢ãªããã£ã¹ã¯I/Oããããã¯ã¼ã¯å¸¯åãªã©ã®ãã¼ãã¦ã§ã¢ãªã½ã¼ã¹ãæãã¾ãã è¦ã¯topã®è¦æ¹ãç¥ã£ã¦ããã¾ãããã¨ãããã¨ã§ãã以åããã°ã«æ¸ããã®ã§ãåç §ãã¦ãã ããã
åé ã§ISUCONã§ã¯ã¬ã¹ãã³ã¹ã¿ã¤ã ãå°ããããã®ãããã¨è¿°ã¹ã¾ãããã¨ã¯ããããªã½ã¼ã¹æ¶è²»éãææ¡ãã¦ãããã¨ã¯ããã«ããã¯ç¹å®ã®ãã³ãã«ãªãã®ã§éè¦ã§ãã ä¾ãã°ãäºé¸åé¡ã®åæç¶æ ã§ã¯MySQLã®CPUè² è·ãæ¯é çã§ãããã¨ãå¤ããã¤ãã£ã¹ã¯I/Oãé«ããã°ãã¾ãMySQLã®ãããã¡ãã¼ã«ãå¢ãããããã¯ã¨ãªæ¹åãå¿ è¦ããã¨ããç¨åº¦ã®ãã¨ã¯ãããããã¾ãã ISUCON4ã§è©±é¡ã«ãªã£ãCache-Controlã®ä»¶ãããããã¯ã¼ã¯å¸¯åãéçã§ãããã¨ã«ãã£ã¨æ©ãæ°ã¥ãã¦ããã°ãä½ãããæã¯æã¦ãããã¨æãã¾ããï¼å½æã¯æãè¾¼ã¿ã§ããã§ããã«ããã¯ã«ãªã£ã¦ãã¨ã¯æã£ã¦ããªãã£ããï¼
ç£è¦
å»å¹´ã®ISUCONã§ã¯ãèªåãã¡ã®ãã¼ã ã§ã¯Mackerelã®å¤å½¢ç£è¦ã使ã£ã¦ã¿ã¾ããã 競æä¸ã«ãã¢ããªã±ã¼ã·ã§ã³ã®syntax errorãä½ãã§500ã§ã¦ãã®ã«ããã³ããã¼ã«ã¼ãèµ°ããã¦ãã¾ããæéãç¡é§ã«ãã¦ãã¾ããã¨ãããã¾ãã ã¤ã³ã¿ã¼ãããçµç±ã§ãã¼ã80çªãçéã§ãã¦ããããã°ãã¢ããªã±ã¼ã·ã§ã³ãè½ã¡ã¦ããã¨ãMackerelã®å¤å½¢ç£è¦ãããã«éç¥ãã¦ããã¾ãã
MySQLãã¼ã¿ãµã¤ãºç¢ºèª
MySQLã®ãã¼ã¿ãµã¤ãºã¨ãã¦ããã¼ãã«ãã¨ã®ãµã¤ãºãè¡æ°ãªã©ãææ¡ãã¦ããã¨ãã¯ã¨ãªæ¹åã®åèã«ã§ããã è¡æ°ãå°ãããã°ãå¤å°ã¯ã¨ãªãæªãã¦ãã¹ã³ã¢ã¸ã®å½±é¿ã¯å°ãããããå¾åãã«ã§ããã
mysql> use database; mysql> SELECT table_name, engine, table_rows, avg_row_length, floor((data_length+index_length)/1024/1024) as allMB, floor((data_length)/1024/1024) as dMB, floor((index_length)/1024/1024) as iMB FROM information_schema.tables WHERE table_schema=database() ORDER BY (data_length+index_length) DESC;
ã¢ã¯ã»ã¹ãã°ã®è§£æ
proxyã§ã¢ã¯ã»ã¹ãã°ã解æãããã¨ã«ãããURLãã¨ã®ãªã¯ã¨ã¹ãæ°ãã¬ã¹ãã³ã¹ã¿ã¤ã ãéè¨ã§ãã¾ãã
解æã«ã¯ãtkuchikiããã®alpã便å©ã§ãã èªåã®å ´åã¯ãé©å½ãªèªä½ã¹ã¯ãªããã使ã£ã¦ãã¾ãããhttps://gist.github.com/yuuki/129983ab4b02e3a646ad
isucon@isucon01:~$ sudo parse_axslog isucon5.access_log.tsv taken_sec req:GET / HTTP/1.1 taken_sum:474.08 req_count:714 avg_taken:0.66 req:GET /footprints HTTP/1.1 taken_sum:58.378 req_count:198 avg_taken:0.29 req:GET /friends HTTP/1.1 taken_sum:27.047 req_count:238 avg_taken:0.11 req:POST /diary/entry HTTP/1.1 taken_sum:6.51 req_count:195 avg_taken:0.03 â¦
nginxã§LTSVã«ããã¢ã¯ã»ã¹ãã°ãã ãã«ã¯ã以ä¸ã®ãããªè¨å®ãå»å¹´ã¯ä½¿ãã¾ããã
log_format tsv_isucon5 "time:$time_local" "\thost:$remote_addr" "\tvhost:$host" "\tforwardedfor:$http_x_forwarded_for" "\treq:$request" "\tstatus:$status" "\tsize:$body_bytes_sent" "\treferer:$http_referer" "\tua:$http_user_agent" "\ttaken_sec:$request_time" "\tcache:$upstream_http_x_cache" "\truntime:$upstream_http_x_runtime" "\tupstream:$upstream_addr" "\tupstream_status:$upstream_status" "\trequest_length:$request_length" "\tbytes_sent:$bytes_sent" ; access_log /var/log/nginx/isucon5.access_log.tsv tsv_isucon5;
MySQLã¹ãã¼ã¯ã¨ãªãã°ã®è§£æ
MySQLã®ã¹ãã¼ã¯ã¨ãªãã°ã¯ãå®è¡æéãé¾å¤ä»¥ä¸ã®ã¯ã¨ãªã®ãã°ãåãã¦ãããã¨ãããã®ã§ãã
æåã¯ãlong_query_time = 0
ã«ãã¦ãå
¨ã¯ã¨ãªã®ãã°ãã¨ãã¾ãããã¡ããããã°æ¡åã®ããã®ãªã¼ããããã¯ããã¾ãããæçµçã«ãªãã«ããã°ããã§ãã
slow_query_log = 1 slow_query_log_file = /var/lib/mysql/mysqld-slow.log long_query_time = 0 log-queries-not-using-indexes = 1
pt-query-digestã§éè¨ããã®ã便å©ã§ãã https://gist.github.com/yuuki/aef3b7c91f23d1f02aaa266ebe858383
è¨æ¸¬ç°å¢ã®æ´å
ãã°ã®è§£æã«ã¤ãã¦ã¯ãååã®ãã³ããã¼ã¯ã«ãããã°ã対象ã«å«ããããªãããããã³ããã¼ã¯åã«éå»ã®ãã°ãéé¿ãããããã«ãã¾ãã
è¨å®ãã¡ã¤ã«ãå¤æ´ããã¾ã¾ãããã»ã¹ã®åèµ·åãå¿ãããã¨ãããã®ã§ããã³ããã¼ã¯åã«åããã»ã¹ã念ã®çºã«åèµ·åããã¾ãã
ãã¥ã¼ãã³ã°
MySQLãnginxãredisãmemcachedã«ã¤ãã¦ã¯ãç¹æ®ãªãé¡ã§ãªãããããkazeburoããã®ã¨ã³ããªã®éãã§ããã¨æãã¾ãã æ¯è¼çã¹ã³ã¢ã«å¹ããããã®ã¯ãéçãã¡ã¤ã«ã®proxyé ä¿¡ãUNIXãã¡ã¤ã³ã½ã±ããåãããããªã¨æã£ã¦ãã¾ãã
ãã ããsysctl.confã®è¨å®å
容åæ ã«ã¤ãã¦ã¯ãSystemd ãã¼ã¸ã§ã³ 207ã¨21xã§æ³¨æãå¿
è¦ã§ãã
å
·ä½çã«ã¯ã/etc/sysctl.conf
ãèªã¾ããã/etc/sysctl.d/*.conf
ã¾ã㯠/usr/lib/sysctl.d/*.conf
ãèªã¾ããããã§ãã
sysctl - ArchWiki
ã¢ããªã±ã¼ã·ã§ã³ã®ææ¡
ãªãã¬ã¼ã·ã§ã³ã°ãããã£ã¦ãã¨æå¤ã¨ãä½ã®ã¢ããªã±ã¼ã·ã§ã³ãç¥ããã«ä½æ¥ãã¦ããã¨ãããã¨ãããã¾ãã ç¹ã«åºç¤ã¯å®ä¾ä½æ¥ãå¤ãã®ã§ãä¸æ¯ã¤ãã¾ã§ã«ãããªãã«æéãã¨ããã¾ãã ãã®éã«ãã¢ããªã±ã¼ã·ã§ã³æ å½ãææ¡ãã¦ãã¦ãææ¡ãã¦ãããã¨ãåæã«ãªãã®ã§ãä¼è©±ã«ã¤ãã¦ãããªããã¨ãããã¾ãã
ããã§ã以ä¸ã®ãããªãã¨ãæåã«å ¨å¡ã§ãã£ã¦èªèãåãããã¨ãã£ã工夫ãããã»ããããã§ãã
- ã¦ã§ããµã¼ãã¹ã¨ãã¦ãã©ã¦ã¶ããã²ã¨éãã®å°ç·ãè¸ãã§ã¿ã
- ãã¼ãã«ã¹ãã¼ããã¿ã
- MySQLã®ã³ã³ã½ã¼ã«ã«å ¥ã£ã¦ãã¼ã¿ã®ä¸èº«ãã¿ã¦ã¿ã
- ã³ã¼ããèªã
競æçµäºåã®ãã§ãã¯
競æçµäºåã«ãªã«ãè¦è½ã¨ãããªãããã§ãã¯ãã¾ãã
- ãã£ã¹ã¯ãµã¤ãºã«ä½è£ãããããéå¶ãµã¤ãã§ãã³ããã¼ã¯ãåãæã«ãã°åºåã§ãã£ã¹ã¯ããã¾ããã¨ããªãã¨ãéããªãããã°ãåãã¾ãã£ã¦ãã¨æå¤ã¨ãã£ã¹ã¯ã«ä½è£ããªããªã£ã¦ããããããããæå¾ã«ç¢ºèªããã
- ãã¼ã¸ã®è¡¨ç¤ºã¯æ£å¸¸ããCSSããªããããã£ã¦ãªãã¨ããªããã
- ãã°ã®åºåãåããã¢ã¯ã»ã¹ãã°ãã¹ãã¼ã¯ã¨ãªãã°ã
- (å³å¯ã«ã¯ç«¶æçµäº30åã60åã®éããã) OSãã¨åèµ·åãã¦ããã³ããã¼ã¯ãéããã©ãã
åèæç®
kazeburoããã®è³æãé常ã«åèã«ãªãã¾ããä½åº¦ãèªã¿ã¾ããã
- ISUCON4 予選でアプリケーションを変更せずに予選通過ラインを突破するの術 - Hateburo: kazeburo hatenablog
- ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
- ISUCONの勝ち方 YAPC::Asia Tokyo 2015
æ¨å¹´ã®äºé¸ã®ã³ã¼ãã¨è¨å®ãã¡ã¤ã«ã¯å ¬éãã¦ãã¾ããhttps://github.com/yuuki/isucon5-qualifier æ¨å¹´ã®æ§åã§ããISUCON 5予選で5位通過した話 - ゆううきブログ
çºè¡¨è³æ
ãã®è¨äºã¯ã京é½.ãªãã#2 ã§çºè¡¨ããå 容ãå ã«ãã¦ãã¾ãã æºåã»éå¶ãããã¨ããããã¾ããï¼ > id:hakobe932 / id:hitode909
ã©ã®çºè¡¨ããããããã£ããã©ãå人çã«ã¯kizkohããã®Rust&netmapã®è©±ãããã¦ãnetmapã¯æè«æèªãã ããããã®ã®ãå ¨ç¶ä½¿ã£ã¦ããªãã£ãã®ã§ãå®é¨çã¨ã¯ããå®éã«ã³ã¼ãæ¸ãã¦åããã¦ããã®ãã¨ã¦ããããªã¨æãã¾ããã ã¨ããããããªã¨ããã§ãnetmapã¨ãdpdkã®è©±ãã§ã¦ããã®ãã¨ã³ã£ãããã¾ããã
ãã¨ãã
ä»å¹´ãã¯ã¦ãªããä½ãã¼ã ãåºå ´ããã¨ã®ãã¨ã ã£ãã®ã§ãç¥è¦å ±æã®ããã«ãããã¾ã§ã®ISUCONåºå ´çµé¨ãã¾ã¨ãã¦ã¿ã¾ããã
ISUCONå½æ¥ã«èª¿ã¹ãªãããã£ã¦ãã¦ã¯éã«åããªãã®ã§ãä»ã®ãã¡ã«ç·´ç¿ãã¦ãããã¨ããããããã¾ãã ããã«ãå ¨ä½ãææ¡ããããã«ãéå»ã®åé¡ãä¸äººã§è§£ãã¦ã¿ããã¨ããããããã¾ãã
ãããããã®ã¯ãå¤å°ISUCONç¹æã®ãã¦ãã¦ã¯æ··ãã£ã¦ãããã®ããå®éã®ç¾å ´ã§ãã£ã¦ãããããªãã¨ãã»ã¨ãã©ã ã¨ãããã¨ã§ãã æ¨ä»ã§ã¯ãã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ãè¤éåããçµæãé«éåã®ä½å°ããã£ãã¨ãã¦ãã大ããããåé¡ãç¸æã«ãããã¨ãå¤ããããISUCONã¯æé ãªç°å¢ã§çµé¨ãç©ãã«ã¯ãã£ã¦ããã®é¡æã§ãã
ããã«æ¬æ¦åºå ´ãã¦æ¨æããã¨ã人権ããã¹ããããããã«ãªã¨ã®å¡ããããã¦ã£ã³ã§ãã¡ããã¡ãã«ãªã£ãè¡ã«çªãè½ã¨ããããããªä½é¨ãå¾ ã£ã¦ãã¾ãã
ISUCONæ¨æãã¦äººæ¨©ã¯å¤±ããããã帰ããã¨ãããããã¦ã£ã³ã§è¡ããã¡ããã¡ãã«ãªã£ã¦ã¦ãä¸éããã¨ãã ã£ã¦ãããªã«ä½èª¿ã¯æªããªãã£ã
— ãããã (@y_uuk1) 2015å¹´10æ31æ¥