Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ISUCON夏期講習2017 講義編 / isucon summer school 1
Search
FUJIWARA Shunichiro
August 25, 2017
Technology
16k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ISUCON夏期講習2017 講義編 / isucon summer school 1
FUJIWARA Shunichiro
August 25, 2017
More Decks by FUJIWARA Shunichiro
See All by FUJIWARA Shunichiro
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
580
クラウドを使う側から、作る側へ / 大吉祥寺.pm 2026前夜祭
fujiwara3
8
2.2k
作るべきものと向き合う - ecspresso 8年間の開発史から学ぶ技術選定 / 技術選定con findy 2026
fujiwara3
9
6.3k
さくらのクラウドでのシークレット管理を考える/tamachi.sre#2
fujiwara3
2
420
Amazon ECS デプロイツール ecspresso の開発を支える「正しい抽象化」の探求 / YAPC::Fukuoka 2025
fujiwara3
13
14k
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
9
7k
alecthomas/kong はいいぞ
fujiwara3
7
2.7k
ecspressoの設計思想に至る道 / sekkeinight2025
fujiwara3
12
3.8k
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
4
5.7k
Other Decks in Technology
See All in Technology
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
5
1.2k
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
210
企画を Software Factory-ready にする——開発が高速になったとき、PdMの仕事はどう変わったか
yachibit
1
120
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
770
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
160
ガチで放置できるClaude Code実行環境の作り方.pdf
lamaglama39
0
480
Refining Active Record
shugo
0
190
価値について
gree_tech
PRO
0
140
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
5
1.5k
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
460
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
380
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
340
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
A Soul's Torment
seathinner
8
3.8k
Rails Girls Zürich Keynote
gr2m
96
14k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
950
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Speed Design
sergeychernyshev
33
2.2k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Everyday Curiosity
cassininazir
0
360
Transcript
ISUCON Նظߨश 2017 ߨٛฤ 2017.08.25 @fujiwara
@fujiwara ٕज़෦ github.com/fujiwara sfujiwara.hatenablog.com
ISUCON શઓ ISUCON 1 - ༏উ (@songmu @sugyan) ISUCON 2
- ༏উ (@songmu @typester) ! ISUCON 3 - ग़ ISUCON 4 - 3Ґ (@acidlemon @handlename) ISUCON 5 - ༏উ (@songmu @sugyan) ISUCON 6 - ४༏উ (@moshisora990 @kasari)
ISUCON ͱ
None
ISUCON = Iikanjini Speed Up CONtest ༩͑ΒΕͨWebΞϓϦέʔγϣϯΛ ͋ΒΏΔखஈΛͬͯߴԽ͢Δ ίϯςετ ϕϯνϚʔΫ͕࣮ߦ͞ΕɺͦͷείΞ͕ߴ͍νʔϜ͕উར
OSͷઃఆมߋɺΞϓϦέʔγϣϯͷॻ͖͑ɺͳΜͰOK ϕϯνϚʔΫ͕༗ޮͳείΞΛग़ͨ͠ == ޭ
֓೦ਤ
ISUCON ͷྺ࢙
ISUCON 1,2 - ઌணॱຊબظ ༧બͳ͠ ઌணॱͰਃ͠ࠐΜͩνʔϜ͕ࢀՃͰ͖Δ (20νʔϜ) ISUCON 1 ༏উۚ10ສԁ
͓: blogͷίϝϯτཝ ग़: Livedoor1 ISUCON 2 ༏উۚ30ສԁ ͓: νέοτൢചαΠτ ग़: NHN Japan1 1 ͲͪΒݱ LINE
ISUCON 3,4 - ༧બϩʔΧϧϕϯνظ ༧બɺֶੜ͕Ͱ͖ͨ ༧બ AWS ্ͷΠϯελϯεΛ֤νʔϜ͕1ىಈ ϕϯνϚʔΫΠϯελϯε্ͷϓϩάϥϜ(GoόΠφϦ)͕ localhost
ʹର࣮ͯ͠ߦ ISUCON 3 ༏উۚ100ສԁ(Ҏޙಉ͡) ͓: Nopaste / ը૾ߘSNS ग़: ΧϠοΫ ISUCON 4 ͓: ͍͢͜Μۜߦ / ಈըࠂ৴ ग़: Cookpad
ISUCON 3,4 ༧બ֓೦ਤ
ISUCON 5,6 - ༧બϦϞʔτϕϯνظ ༧બ GCP(5) Azure(6) ্ͷΠϯελϯεΛ֤͕ࣗىಈ ϕϯνϚʔΫӡӦ͕༻ҙͨ͠Πϯελϯε͕ ֤ࣗͷΠϯελϯεʹର࣮ͯ͠ߦ
ISUCON 5 ͓: SNS(mixiతͳ) / ϚΠΫϩαʔϏε ग़: Treasure Data ISUCON 6 ͓: ΩʔϫʔυࣗಈϦϯΫ / ͓ֆ͔͖ڞ༗αΠτ ग़: ͯͳ(༧બ) pixiv(ຊબ)
None
Ұൠͷ༧બ௨աഒ15ഒҎ্ (16/267) ֶੜ5ഒ (10/50) ຊબʹग़Ͱ͖Εۚ100ສԁເͰͳ͍ʂ
ISUCON ࢀՃऀͷօ͞Μ(Ұൠ) Webܥاۀʹ͓ۈΊ (͕ଟ͍) ࠒ͔ΒڊେͳτϥϑΟοΫΛࡹ͍͍ͯΔ (ਓ͍Δ) ஶ໊ OSS ͷίϛολͱ͔ (كʹ͍Δ)
νʔϜ৬ͰΜͩΓɺ༑ਓͰΜͩΓ ΠϯϑϥدΓͷਓ͕ଟ͍ɺͱ͍͏͜ͱͳ͍
ISUCON ૯߹֨ಆٕ OSɺϛυϧΣΞͷνϡʔχϯάͷΈͰউͯͳ͍(ઈରʹ) ڝٕதͷ࣌ؒʹΞϓϦέʔγϣϯΛॻ͖͑ΔεΩϧ DB ͷࣝ ޮͷΑ͍ΞʔΩςΫνϟͷࣝ ϘτϧωοΫΛత֬ʹൃݟ͢Δೳྗ ຊબͰෳߏɺσϓϩΠ
͓͢͢Ίͷϝϯόʔߏ OSϛυϧΣΞʹڧ͍ਓ: 1໊ ΞϓϦέʔγϣϯʹڧ͍ਓ: 2໊ ϘτϧωοΫͷൃݟɺత֬ͳઃఆɺϞχλϦϯάඞཁ ࣌ؒͱͯ͠Γͳ͍ͷΞϓϦέʔγϣϯͷॻ͖͑
ISUCON ͰΔ͜ͱ = ύϑΥʔϚϯενϡʔχϯά
ύϑΥʔϚϯενϡʔχϯά ISUCON ʹ͓͚ΔύϑΥʔϚϯε == ॲཧͨ͠HTTPϦΫΤετ (جຊ) 2 Ұఆ࣌ؒʹͲΕ͚ͩଟ͘ͷHTTPϨεϙϯεΛฦͤΔ͔ 1ϦΫΤετͨΓͷॲཧ࣌ؒΛ͘͢Δ ฒߦͰଟͷϦΫΤετΛॲཧ͢Δ
2 είΞͷܭࢉʹ͍ͭͯৄࡉϨΪϡϨʔγϣϯʹهࡌ͋Γ
WebΞϓϦέʔγϣϯͷ֓೦ਤ ֤ཁૉͷॲཧΛ͍͔ʹগͳ͘͢Δ͔ ྫ: ੩తϑΝΠϧWebαʔόͰ৴ (AppͰॲཧ͠ͳ͍) App͔ΒStorageͷΫΤϦΛݮΒ ͢ StorageͰDiskΞΫηεΛݮΒ͢ ͦͦΫϥΠΞϯτ͔ΒϦΫΤε τͤ͞ͳ͍(Cache-Controlͱ͔)
શϓϩάϥϚʔ͕Δ͖ϨΠςϯγʔ3 nano sec L1Ωϟογϡࢀর 0.5 ذ༧ଌࣦഊ 5 L2Ωϟογϡࢀর 7 MutexͷϩοΫͱΞϯϩοΫ
25 ϝΠϯϝϞϦʔࢀর 100 Zippy[Snappy]ʹΑΔ1KBͷѹॖ 3,000 1GbpsωοτϫʔΫӽ͠ʹ2KBΛૹ৴ 20,000 ϝϞϦʔ͔Β࿈ଓͨ͠1MBͷྖҬͷಡΈग़͠ 250,000 ಉҰσʔληϯλʔʹ͓͚ΔϥϯυτϦοϓ 500,000 0.5 msec σΟεΫγʔΫ 10,000,000 10 msec σΟεΫ͔Β࿈ଓͨ͠1MBͷྖҬͷಡΈग़͠ 20,000,000 20 msec ύέοτΛΧϦϑΥϧχΞ→Φϥϯμ→ΧϦϑΥ ϧχΞͱૹΔ 150,000,000 150 msec 3 http://norvig.com/21-days.html#answers
ͨͱ͑ TCP ͷ 3way handshake ଓཱ֬·Ͱʹ 0.5ms x 1.5ճ =
0.75ms
ฒྻΛ্͛ͯϨΠςϯγΛӅṭ͢Δ redis-benchmark -h $redis_server -c $c -t get
ͨͱ͑ 1 HTTP ϦΫΤετΛ10msͰฦ٫͢Δ 1ճ͋ͨΓ ճ ߹ܭ LL ͷ HTTP
αʔόͰ Hello World 0.5ms 1 0.5ms ηογϣϯཧͷͨΊʹ Redis ʹΫΤϦ 0.5ms 1 0.5ms DBʹରͯ͠5ճΫΤϦΛൃߦ 1ms 5 5ms ςϯϓϨʔτΛϨϯμϦϯ ά 3ms 1 3ms 10 ms/req = 100 req/sec (1ฒྻ) ͪͳΈʹ ISUCON 1 ͷ༏উείΞ 1500 req/sec ૬
۩ମతʹͲ͏͢Δ?
۩ମతʹͲ͏͢Δ? 1. ϘτϧωοΫΛݟ͚ͭΔ 2. ղফͯ͠ܭଌ͢Δ 3. (1,2Λ܁Γฦ͠) 4. ༏উ
ϘτϧωοΫ Ұ൪ࡉ͍(͍)ͱ͜ΖΛվળ͠ͳ͍ͱҙຯ͕ͳ͍
ଓ͖ ࣮ફฤ Ͱ
TCP 3way handshake ը૾ग़య https://commons.wikimedia.org/wiki/File:Tcp_normal.svg