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
550
クラウドを使う側から、作る側へ / 大吉祥寺.pm 2026前夜祭
fujiwara3
8
2.2k
作るべきものと向き合う - ecspresso 8年間の開発史から学ぶ技術選定 / 技術選定con findy 2026
fujiwara3
9
6.2k
さくらのクラウドでのシークレット管理を考える/tamachi.sre#2
fujiwara3
2
410
Amazon ECS デプロイツール ecspresso の開発を支える「正しい抽象化」の探求 / YAPC::Fukuoka 2025
fujiwara3
13
14k
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
9
6.9k
alecthomas/kong はいいぞ
fujiwara3
7
2.6k
ecspressoの設計思想に至る道 / sekkeinight2025
fujiwara3
12
3.8k
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
4
5.6k
Other Decks in Technology
See All in Technology
The seven pitfalls of AI (revised version)
ufried
0
140
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
320
AI Native Platform Engineering 〜PlatformとAgileで“作る速さ”を“価値”へ〜
uya116
0
520
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
330
Databricksメトリクスビューはじめてのもくもく会
taka_aki
0
140
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
460
AIエージェントを安全で速い現場監督にする:Jev・Obsidian・メタハーネス
x5gtrn
PRO
0
140
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
340
ScotSecure West 2026 - Glasgow
raybugg
0
210
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
1
290
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
18
13k
[Kiro Meetup #7] Kiro Crew Dive Deep
konippi
0
430
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
450
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Discover your Explorer Soul
emna__ayadi
2
1.3k
BBQ
matthewcrist
89
10k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
380
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