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
900
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
学術的根拠から読み解くNotebookLMの音声活用法
shukob
0
240
JavaScript パーサーに using 対応をする過程で与えたエコシステムへの影響
baseballyama
1
140
クラウドネイティブ時代の 開発プロセス再設計 〜速さと品質を両立するには〜
moritamasami
0
110
『星の世界の地図の話: Google Sky MapをAI Agentでよみがえらせる』 - Google Developers DevFest Tokyo 2025
taniiicom
0
170
DDD x Microservice Architecture : Findy Architecture Conf 2025
syobochim
12
3.6k
グローバルなコンパウンド戦略を支えるモジュラーモノリスとドメイン駆動設計
kawauso
3
7.6k
メッセージ駆動が可能にする結合の最適化
j5ik2o
9
1.4k
未回答質問の回答一覧 / 開発をリードする品質保証 QAエンジニアと開発者の未来を考える-Findy Online Conference -
findy_eventslides
0
390
入社したばかりでもできる、 アクセシビリティ改善の第一歩
unachang113
2
340
巨大モノリスのリプレイス──機能整理とハイブリッドアーキテクチャで挑んだ再構築戦略
zozotech
PRO
0
260
膨大なデータをどうさばく? Java × MQで作るPub/Subアーキテクチャ
zenta
0
120
持続可能なアクセシビリティ開発
azukiazusa1
6
310
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
4 Signs Your Business is Dying
shpigford
186
22k
Building an army of robots
kneath
306
46k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Code Review Best Practice
trishagee
72
19k
The Invisible Side of Design
smashingmag
302
51k
How to Ace a Technical Interview
jacobian
280
24k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
340
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