Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
isucon5 予選をどう惨敗したか / isucon5 qualifier
Search
Yuichi Takada
October 06, 2015
Technology
1
910
isucon5 予選をどう惨敗したか / isucon5 qualifier
2015/10/06(火) 19:00
ISUCON5予選報告会 in GCPUG Tokyo
http://eventdots.jp/event/569858
Yuichi Takada
October 06, 2015
Tweet
Share
More Decks by Yuichi Takada
See All by Yuichi Takada
取引ドメインでの取り組み / mercari transaction domain
takady
0
100
楽してデータ分析したい / data engineering with oss
takady
0
410
Other Decks in Technology
See All in Technology
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
73k
What happened to RubyGems and what can we learn?
mikemcquaid
0
250
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
使いにくいの壁を突破する
sansantech
PRO
1
120
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
210
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
110
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
600
データ民主化のための LLM 活用状況と課題紹介(IVRy の場合)
wxyzzz
2
670
GSIが複数キー対応したことで、俺達はいったい何が嬉しいのか?
smt7174
3
140
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
180
今日から始めるAmazon Bedrock AgentCore
har1101
4
400
Featured
See All Featured
A designer walks into a library…
pauljervisheath
210
24k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
47
ラッコキーワード サービス紹介資料
rakko
1
2.2M
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
How STYLIGHT went responsive
nonsquared
100
6k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
300
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Building the Perfect Custom Keyboard
takai
2
680
Transcript
isucon5 ༧બΛͲ͏ࢂഊ͔ͨ͠ takady https://flic.kr/p/5mHpwt
ࣗݾհ • ߴా༞Ұ • Sansan גࣜձࣾ (2015/05~) • αʔόαΠυΤϯδχΞ (ruby)
• twitter: takady7 • github: takady https://flic.kr/p/5mHpwt
isucon 5 ༧બʂ https://flic.kr/p/5mHpwt
νʔϜϝϯόʔ https://flic.kr/p/5mHpwt • @tatsuyaoiw • @muratayusuke
ͷே https://flic.kr/p/x1Zg9g
https://flic.kr/p/x1Zg9g
ϙʔλϧαΠτʹϩάΠϯ https://flic.kr/p/x1Zg9g
https://flic.kr/p/x1Zg9g
ʮNode.js ͷ࣮ͳ͘ͳΓ·ͨ͠ɻʯ https://flic.kr/p/x1Zg9g
https://flic.kr/p/x1Zg9g
(ν ruby ͳͷͰηʔϑ) https://flic.kr/p/x1Zg9g
։͕࢝1࣌ؒΕͨ͜ͱͰ • ू·͔ͬͯΒ1࣌ؒͷ༨༟Λ࣋ͯͨ • ࠷ॳͷ࡞ۀɺ୭͕ԿΔ͔Λ֬ೝͨ͠ • git init • dstat
• kataribe • slow-query • stackprof https://flic.kr/p/x1Zg9g
11:00 ༧બ։࢝ https://flic.kr/p/kwpHnK
https://flic.kr/p/kwpHnK
/etc/my.cnf ͕ಡΈࠐΊͳ͍ • slow-query log ͕ઃఆͰ͖ͳ͍ • /etc/mysql/conf.d/my.cnf Λ࡞ͯ͠ઃఆͨ͠ https://flic.kr/p/kwpHnK
/etc/my.cnf ͕ಡΈࠐΊͳ͍ • ݪҼ AppArmor Ͱͨ͠ https://flic.kr/p/kwpHnK
࠷ॳͷϕϯνϚʔΫΛճͯ͠ • ॳظείΞ: 200 • slow query ݟͯ index Λషͬͨ
• nginx - unicorn ͷ unix ιέοτଓ • nginx Ͱͷ੩తίϯςϯπͷ৴ • unicorn ͷ worker 1 -> 8 ʹ૿ͨ͠ https://flic.kr/p/kwpHnK
200 -> 2000 (4Ґ) https://flic.kr/p/kwpHnK
redis Խ https://flic.kr/p/edctkJ
mysql ͔Β redis • footprints (͋ͱ) ςʔϒϧͷσʔλ • key
= “#{ΧϨϯτϢʔβ}:#{๚Ϣʔβ}” • value = ๚࣌ؒ https://flic.kr/p/edctkJ
2000 -> 7000 (3Ґ) https://flic.kr/p/edctkJ
ܾউߦ͚Δʁʂ https://flic.kr/p/edctkJ
ࡉ͔͍मਖ਼ͰΛՔ͙ https://flic.kr/p/7Guxgu
ࡉ͔͍मਖ਼ͰΛՔ͙ • entries_of_friends ͷΫΤϦΛ मਖ਼ • ͦͷଞΖΖ https://flic.kr/p/7Guxgu
7000 -> 10000 (10Ґ͘Β͍) https://flic.kr/p/7Guxgu
࠶ىಈςετ https://flic.kr/p/7Guxgu
Πϯελϯεͷ࠶ىಈ • ࠶ىಈͯ͠ਖ਼͘͠ΞϓϦέʔγϣϯ͕ىಈͯ͠ɺ ϕϯνϚʔΫΛࡹ͚Δ͜ͱΛ֬ೝ͢ΔͨΊ • web app systemd Ͱىಈ
https://flic.kr/p/7Guxgu
10000 -> 8700 (ݍ֎) https://flic.kr/p/7Guxgu
ͳͥείΞ͕Լ͕ͬͨͷ͔ • ͓ͦΒ͘Ωϟογϡ͕ΫϦΞ͞Εͨ͜ͱͰɺ ͬͯͨσʔλ͕Ϧηοτ͞Εͨ • ΩϟογϡΛԹΊΔͨΊͷεΫϦϓτΛΊ Α͔͔ͬͨ͠Εͳ͍ https://flic.kr/p/7Guxgu
ࡉ͔͍मਖ਼ͰΛՔ͙ ʢएׯർΕ͖ͯͯͨʣ https://flic.kr/p/7Guxgu
ࡉ͔͍मਖ਼ͰΛՔ͙ • app - mysql ͷ unix ιέοτଓ • session
store Λ Redis ʹม͑Δ https://flic.kr/p/7Guxgu
8700 -> 9700 (ݍ֎) https://flic.kr/p/7Guxgu
ٯసΛૂ͏ https://flic.kr/p/bhXKeg
Γ1࣌ؒ • 10ҐҎʹೖͬͯͳ͔ͬͨ • εΩʔϚมߋʹखΛग़ͯ͠ͳ͔ͬͨ • join Λͳͨ͘͢Ίͷඇਖ਼نԽ • comments
ςʔϒϧʹ entry_user_id ΛՃ • Γ30ҐͰ࣮ྃͯ͠ϕϯνϚʔΫΛ·Θͨ͠ https://flic.kr/p/bhXKeg
9700 -> 250 https://flic.kr/p/bhXKeg
খֶੜΈ͍ͨͳείΞʹ https://flic.kr/p/bhXKeg
ͳͥείΞ͕Լ͕ͬͨͷ͔ • ϕϯνϚʔΧʔ fail ͯ͠ͳ͔ͬͨ • Ճͨ͠ΧϥϜʹॳظσʔλΛೖΕͯ͋͛Δ ඞཁ͕͋ͬͨ • Γ࣌ؒ͋ͱ10͘Β͍ͩͬͨͷͰ
revert https://flic.kr/p/bhXKeg
·ͱΊ • ָ͔ͬͨ͠ʂ • ΧʔωϧɺωοτϫʔΫɺDB ษڧʹͳͬͨ • GCE ॳΊ͚ͯͩͬͨͲɺ͍͔ͬͨ͢ •
ෳਓ͕ಉ͡αʔόͰίʔυमਖ਼͢Δͷμϝ • དྷ͋Ε ·ͨνϟϨϯδ͍ͨ͠ https://flic.kr/p/5mHpwt