Slide 1

Slide 1 text

ࣾ಺ISUCONΛ։࠵ͨ͠࿩ ࣾ಺ISUCONΛऴ͑ͯ ʙαʔόνϡʔχϯάษڧձʙ 2016/02/08 Takashi Abe

Slide 2

Slide 2 text

ͩΕʁ • @takashabe • ΤόϯδΣϦετ() • ࣾ಺ISUCON։࠵͠·ͨ͠

Slide 3

Slide 3 text

Agenda • ࣾ಺ISUCON֓࿦ • ϕϯνϚʔΫجૅ • ϓϩϑΝΠϦϯάجૅ

Slide 4

Slide 4 text

ࣾ಺ISUCON֓࿦

Slide 5

Slide 5 text

ࣾ಺ISUCONग़ͨਓʁ

Slide 6

Slide 6 text

੝Γ্͕ͬͨѹ౗తײँ

Slide 7

Slide 7 text

ISUCON is Կ

Slide 8

Slide 8 text

WebαʔϏεΛૣͯ͘͠ɺϕϯν ϚʔΫͰߴείΞΛग़͢ήʔϜ

Slide 9

Slide 9 text

Πϯϑϥߏ੒

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

֤αʔόͷ໾ׂ • webapp • 1ਓ1୆ɺڝٕऀʹ౉͞ΕΔαʔό • νϡʔχϯάର৅ͷwebαʔϏε͕Քಇ • portal • ϕϯνϚʔΫͷ࣮ߦɺείΞͷ֬ೝ • bench • webappαʔόʹରͯ͠ϦΫΤετΛ౤͛ͯܭଌ

Slide 12

Slide 12 text

νϡʔχϯάϙΠϯτ • ϘτϧωοΫ͸DB • ༗ޮͳख๏ • ΫΤϦࣗମͷॻ͖׵͑ • ΫΤϦͷ౤͛ํ • ಛʹ᠘͸༻ҙͯ͠ͳ͍ • ۀ຿্Α͋͘ΔΑ͏ͳରԠΛߦ͑͹είΞ͕ग़Δ

Slide 13

Slide 13 text

ϕϯνϚʔΫجૅ

Slide 14

Slide 14 text

ϕϯνϚʔΧ͕΍͍ͬͯΔ͜ͱ 1. portal͕ϕϯνϚʔΧ࣮ߦΩϡʔΛੜ੒͢Δ 2. bench͕portalͷΩϡʔΛϙʔϦϯά͢Δ 3. ಛఆͷγφϦΦʹԊͬͯࢦఆͷwebappʹϦΫΤετ Λͻͨ͢Β౤͛Δ 4. Ϩεϙϯε݁ՌΛportalʹొ࿥͢Δ

Slide 15

Slide 15 text

Ωϡʔͷੜ੒ • MySQLͰૉ๿ʹ؅ཧ

Slide 16

Slide 16 text

ΩϡʔͷϙʔϦϯά • bench಺ͰϕϯνϚʔΧͱ͸ผͷϙʔϦϯάεΫϦϓτ ͕Քಇ͍ͯ͠Δ • portalʹ޲͚ͯ”waiting”ͷΩϡʔΛ୳͍ͯ͠Δ͚ͩ

Slide 17

Slide 17 text

ಛఆͷγφϦΦʹԊͬͯϦΫΤετΛ౤͛Δ • ͍ΘΏΔϢχοτςετతͳHTTPϦΫΤετΛੜ੒͠ ͯwebappʹ౤͍͛ͯΔ • IO଴ͪΛߟྀͯ͠ͳΔ΂͘ฒྻͰ౤͍͛ͨ

Slide 18

Slide 18 text

ฒྻ࣮ߦ def orders(): List[List[Scenario]] = { List( List(new Init), List(new Bootstrap), List(new Load, new Load, new Load, new Load, new Load, new LoadChecker) ) }

Slide 19

Slide 19 text

γφϦΦ getStatus(s1, "/") match { case 200 => // Nothing case i: Int => { getAndCheck(s1, "/login", "LOGIN PAGE BECAUSE NOT LOGGED IN", (check) => check.isStatus(200)) postAndCheck(s1, "/login", getLoginForm(s1), "LOGIN POST WHEN LOGGED OUT", check => check.isRedirect("/")) getAndCheck(s1, "/", "SHOW INDEX AFTER LOGIN", check => check.isStatus(200)) } }

Slide 20

Slide 20 text

ϓϩϑΝΠϦϯάجૅ

Slide 21

Slide 21 text

“ਪଌ͢ΔͳܭଌͤΑ”

Slide 22

Slide 22 text

͓͢͢ΊϓϩϑΝΠϦϯάπʔϧ • MySQL • pt-query-digest • https://www.percona.com/doc/percona-toolkit/2.2/ pt-query-digest.html • Nginx/Apache/Varnish • kataribe • https://github.com/matsuu/kataribe • ֤ݴޠʹಛԽͨ͠΍ͭ • ֤ࣗΑ͠ͳʹ

Slide 23

Slide 23 text

Demo

Slide 24

Slide 24 text

ISUCON, ղ͘ͷ΋͍͍͚Ͳग़୊΋ ָ͍͠

Slide 25

Slide 25 text

ϕϯνϚʔΧͷ஌ݟ

Slide 26

Slide 26 text

ࣾ಺ISUCONָ͔ͬͨ͠Ͱ͢Ͷ ͓ർΕ͞·Ͱͨ͠