Slide 1

Slide 1 text

ো֐ʹͯ͢Δͱ͜Ζͳ͠ αΠϘ΢ζגࣜձࣾ @yokotaso

Slide 2

Slide 2 text

We’re sorry for …

Slide 3

Slide 3 text

ӡ༻ো֐ͷ࿩ • ͝໎࿭Λ͓͔͚ͨ͠Έͳ͞· ͝ΊΜͳ͍͞ • ؂ࢹɾରࡦɾௐࠪɾվળΛ೔ʑੋվળ • վળ͸·ͩ·ͩಓ൒͹ • αΠϘ΢ζΛ຤Ӭ͘ΑΖ͓͘͠ئ͍͠·͢

Slide 4

Slide 4 text

Ϋϥ΢υͷن໛ͱՔಇ཰ • ͝ܖ໿͍͍͍ͨͩͯΔձ༷ࣾ ໿1ສ8ઍࣾ

Slide 5

Slide 5 text

ӡ༻ো֐

Slide 6

Slide 6 text

Boo!

Slide 7

Slide 7 text

ͦΜͳ͜ͱͳ͍

Slide 8

Slide 8 text

ŧŔŕŪGOOD

Slide 9

Slide 9 text

ࣦഊ͔ΒపఈతʹֶͿ ো֐ֶश 4

Slide 10

Slide 10 text

جૅ஌ࣝΛ͚ͭΔ

Slide 11

Slide 11 text

جૅతͳૉཆΛຏ͘ ίϯϐϡʔλͷجૅΛ஌Ζ͏

Slide 12

Slide 12 text

ੜ͖ͨσʔλ͕ো֐ʹ͸͋Δ • ϘτϧωοΫ͸Ͳ͜ʁ • େن໛αʔϏεٕज़ೖ໳Λ
 ࢀর͠ͳ͕Βௐࠪ͢ΔͱษڧʹͳΔ • ϝτϦΫε؂ࢹπʔϧͰ؍࡯͠Α͏ • جૅతͳ஌ࣝ΍ಎ࡯͕
 ো֐ௐࠪͷͨͼʹຏ͔ΕΔ

Slide 13

Slide 13 text

஌ࣝͱܦݧ͸ཌྷΛत͚ͯ͘ΕΔ • ະ஌ͷ໰୊ʹग़ձͬͨΒཱͪฦΔ৔ॴ • ೉͍͠໰୊΄Ͳղܾͷࢳޱʹ • ҰਓͰௐࠪΛਐΊΒΕΔΑ͏ʹͳͬͨ • ϝτϦΫε͔ΒݪҼΛ༧૝Ͱ͖ΔΑ͏ʹ

Slide 14

Slide 14 text

ίϯϐϡʔλʔͷେࣄͳࣄ͸ ো֐͕ڭ͑ͯ͘Εͨ

Slide 15

Slide 15 text

஌ࣝΛਂ۷Γ͢Δ

Slide 16

Slide 16 text

ಈ࡞ݪཧΛਂ͘ཧղ͢Δ ো֐͸࠷ߴͷྑ໰Ͱ͋Δ

Slide 17

Slide 17 text

MySQLͷΠϯσοΫε͕࢖͑ͳ͍࿩

Slide 18

Slide 18 text

খ͞ͳෆ۩߹վम͕ݪҼ • ॏෳআڈͷͨΊʹGROUP BY Λ҆қʹ͚ͭͨͷ͕ݪҼ • JOIN࣌ʹར༻ͨ͠ΠϯσοΫε͕GROUP BY ʹ࠶ར༻Ͱ͖ͳ͍ • େྔͷϨίʔυʹରͯ͠filesort͕૸ͬͯྦ໨

Slide 19

Slide 19 text

ཧղͨͭ͠΋Γʹͳͬͯ·ͤΜ͔ • ো֐ͷͨͼʹجຊతͳಈ࡞ݪཧΛ֬ೝ • ো֐ௐࠪΛ௨ͯ͠ಈ࡞ݪཧͷཧղ͕ਂ·Δ • ಈ࡞ݪཧ͕ਂ͘ཧղͰ͖͍ͯͳ͍ؾ͖ͮ

Slide 20

Slide 20 text

ো֐͸࠷ߴͷྑ໰Ͱ͋Δ

Slide 21

Slide 21 text

νʔϜͰڧ͘ͳΔ

Slide 22

Slide 22 text

ࣦഊΛΏΔ͢จԽ ࣦഊͷڞ༗͸ஏ͕ͩ໾ʹཱͭʂ

Slide 23

Slide 23 text

Seasar2 S2DAO Ҡߦࣦഊ

Slide 24

Slide 24 text

͝ΊΜͳ͍͞!͝ΊΜͳ͍͞! • SeasarͷEOLʹ൐͏Spring FrameworkҠߦ • Seasar S2DAO͔ΒHibernateͷ΁Ҡߦࣦഊ • ύϑΥʔϚϯεྼԽɺOutOfMemoryError… • ׬શഊ๺Ͱ͢ɻ͝໎࿭Λ͓͔͚͠·ͨ͠

Slide 25

Slide 25 text

ࣦഊΛड͚ೖΕΔจԽ

Slide 26

Slide 26 text

PostmortemΛॻ͜͏ • ໰୊Λ٬؍తʹ੔ཧ͢ΔͨΊʹ༗༻ • ࣦഊΛ෼ੳɾڞ༗ɾ๷ࢭ • AWS S3 େن໛ো֐ • git lab ຊ൪σʔλ࡟আ

Slide 27

Slide 27 text

ࣦഊΛڞ༗Ͱ͖ΔจԽΛ࡞Δ • ࣦഊΛڞ༗ͯ͠܁Γฦ͞ͳ͍จԽΛ࡞Ζ͏ • ࣦഊʹ͍ͭͯޠΔਓͷଘࡏҙٛ͸େ͖͍ • ࣦഊΛڞ༗ͯ͘͠ΕΔਓʹѹ౗తײँ • ݠڏɾଚܟɾ৴པ(HRT) ΛԿ౓΋֬ೝ͠Α͏ • ݸਓͷࣦഊͰ͸ͳ͍ɺ૊৫ͷࣦഊͩ

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

ࣦഊ͸੒ޭͷதؒ఺Ͱ͔͠ͳ͍

Slide 30

Slide 30 text

సΜͰ΋ͨͩͰ͸ى͖͕͋Βͳ͍ʂ • ࣦഊͷչ͕͠͞վળʹͭͳ͕Δ • S2Dao͔ΒHibernate΁ͷҠߦࣦഊΛ׆͔ͯ͠ • JDBCTemplateΛར༻ͯ͠࠶ઃܭ • OSSͱͯ͠ެ։༧ఆ

Slide 31

Slide 31 text

ࣦഊͷڞ༗͸ஏ͕ͩ໾ʹཱͭʂ

Slide 32

Slide 32 text

Α͜͠·ͳੜ͖ํ

Slide 33

Slide 33 text

ͣͿͱ͘ੜ͖Δ ੜ͖͍ͯΔ͚ͩͰ·Δ΋͏͚

Slide 34

Slide 34 text

Java ṖͷύϑΥʔϚϯεྼԽ

Slide 35

Slide 35 text

ղܾ͠·ͨ͠ (๑•̀ŷ•́)و✧ • JIT Compiler͕ఀࢭ͢Δέʔε͕͋Δ • JVM͕JIT Compileͨ͠ίʔυΛࣺͯΔ • JIT Compiler͕෮ؼͤͣɺ࠷దԽͷ͔͔Βͳ͍
 Byte CodeΛJava͕࣮ߦ͠ଓ͚Δ • ύϑΥʔϚϯεྼԽΛى͜͢

Slide 36

Slide 36 text

ղܾͷࢳޱ • GCʹׂΓ౰ͯΔThread਺͸
 CPU਺͔Βܾ·Δ • GCʹׂΓ౰ͯΒΕͨThread͸
 CPUΛ100%ઐ༗͢Δ

Slide 37

Slide 37 text

ղܾͷࢳޱ • GCʹΑΔCPUར༻཰Λߟྀͯ͠΋༨༟͕͋Δ • Full GC͸ൃੜ͍ͯ͠ͳ͍ • GCΛݪҼ͔Βഉআ • CPUෛՙ্͕͕ΔέʔεΛMLͰಡΈ͋͞Δ

Slide 38

Slide 38 text

ϒϩάʹެ։

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

͝Ѫಡ͋Γ͕ͱ͏͍͟͝·͢ʂ • ͜ͷهࣄ͚ͩͰ 1ສ5ઍPV • ࠷ऴతʹ 700͸ͯϒ͘Β͍ • OSS͸͓ੈ࿩ʹͳΓͬͺͳ͠ • ৘ใެ։Ͱߩݙ͍ͨ͠ؾ࣋ͪ

Slide 41

Slide 41 text

ͣͿͱ͘ੜ͖ΔΑ͏ʹ • ໘ന͍ٕज़هࣄʹͳͬͨΒṶ͚΋ͷ • ໘ന͍ࣄ͋ͬͨΒ͍͍ͳ͕ϞνϕʔγϣϯʹมԽ • ࠶ىಈͰճආͭͭ͠௕ظؒɺো֐͕ൃੜ͍ͯͨ͠ • Θ͔Βͳͯ͘΋͍͍ɾಀ͍͍͛ͯ • ੜ͖͍ͯΔ͚ͩͰ·Δ΋͏͚ͷਫ਼ਆ

Slide 42

Slide 42 text

ௐ΂Δ͚ͩͰ·Δ΋͏͚ʂ

Slide 43

Slide 43 text

ো֐ֶशɺ͸͔ͲΓ·͔ͬ

Slide 44

Slide 44 text

ো֐ʹͯ͢Δͱ͜Ζͳ͠