ワンクリックで
isucon-initial-strategy
First 30 minutes strategy checklist for ISUCON competitions — what to do immediately after the contest starts
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
First 30 minutes strategy checklist for ISUCON competitions — what to do immediately after the contest starts
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
MCP tool reference — exec, benchmark_start, benchmark_status, note_write, etc. Use when: executing commands on VMs, running benchmarks, or recording findings
ISUCON13 contest manual — server topology, service management, benchmark execution, and rules. Use when: checking environment setup, running benchmarks, or understanding contest constraints
ISUPipe application manual — features, terms, constraints, and API specs. Use when: understanding the app domain, checking API behavior or MUST/MAY requirements
General strategy for identifying and adding missing database indexes in ISUCON web applications
General techniques for optimizing user icon/avatar image serving in ISUCON web applications
General techniques for identifying and fixing N+1 query problems in ISUCON web applications
| name | isucon-initial-strategy |
| description | First 30 minutes strategy checklist for ISUCON competitions — what to do immediately after the contest starts |
A structured approach for the opening phase of an ISUCON competition.
Verify all services are running:
exec host="vm1" command="systemctl status isupipe-go nginx mysql pdns --no-pager"
exec host="vm2" command="systemctl status isupipe-go nginx mysql pdns --no-pager"
exec host="vm3" command="systemctl status isupipe-go nginx mysql pdns --no-pager"
Check system resources:
exec host="vm1" command="free -h && df -h && nproc"
Get baseline benchmark score:
benchmark_start
Enable slow query log:
exec host="vm1" command="sudo mysql -u isucon -pisucon -e \"SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 0.01;\""
Install alp (if available in skill):
exec host="vm1" command="wget -q https://github.com/tkuchiki/alp/releases/download/v1.0.21/alp_linux_amd64.tar.gz -O /tmp/alp.tar.gz && cd /tmp && tar xzf alp.tar.gz && sudo mv alp /usr/local/bin/"
Read the application source:
exec host="vm1" command="ls /home/isucon/isucon13/webapp/go/"
exec host="vm1" command="wc -l /home/isucon/isucon13/webapp/go/*.go"
Read the database schema:
exec host="vm1" command="cat /home/isucon/isucon13/webapp/sql/initdb.d/10_schema.sql"
Add missing indexes (almost always the #1 quick win):
SHOW INDEX FROM <table>Check for obvious N+1 patterns:
exec host="vm1" command="grep -n 'for.*range\|\.Get\|\.Select\|\.Query' /home/isucon/isucon13/webapp/go/*.go | head -30"
Run profiling benchmark:
exec host="vm1" command="sudo truncate -s 0 /var/log/nginx/access.log"
benchmark_start
Analyze results:
Prioritize next steps based on data:
--pretest-only before full benchmark| Don't | Do Instead |
|---|---|
| Optimize without profiling | Always measure first |
| Change multiple things at once | One change → one benchmark |
| Skip pretest validation | Always --pretest-only before full run |
| Forget to persist index changes | Add to schema.sql or init script |
| Ignore benchmark errors | Fix 5xx/timeout errors before optimizing |