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
障害にすてるところなし
Search
tomoya yokota
March 11, 2017
Technology
8
4k
障害にすてるところなし
tomoya yokota
March 11, 2017
Tweet
Share
More Decks by tomoya yokota
See All by tomoya yokota
レガシーソフトウェアを再現性高く置き換える手法 〜「射撃しつつ前進」を支える技術〜
yokotaso
0
19
レガシーSolrの Elasticseach移行 Cybozu Tech Meetup #14
yokotaso
0
400
introduction-to-modern-gc
yokotaso
10
3.1k
product-sutainability
yokotaso
0
320
the-art-of-develop-culture-at-cybozu
yokotaso
0
3.3k
Go-To-Java9
yokotaso
0
220
Other Decks in Technology
See All in Technology
成立するElixirの再束縛(再代入)可という選択
kubell_hr
0
260
宇宙パトロール ルル子から考える LT設計のコツ
masakiokuda
2
100
データ戦略部門 紹介資料
sansan33
PRO
1
3.2k
Copilot Agentを普段使いしてわかった、バックエンド開発で使えるTips
ykagano
1
1.1k
新規プロダクト開発、AIでどう変わった? #デザインエンジニアMeetup
bengo4com
0
450
RubyOnRailsOnDevin+α / DevinMeetupJapan#2
ginkouno
0
380
産業機械をElixirで制御する
kikuyuta
0
170
Agentic DevOps時代の生存戦略
kkamegawa
0
240
Tensix Core アーキテクチャ解説
tenstorrent_japan
0
360
Model Mondays S2E01: Advanced Reasoning
nitya
0
350
白金鉱業Meetup_Vol.19_PoCはデモで語れ!顧客の本音とインサイトを引き出すソリューション構築
brainpadpr
2
340
堅牢な認証基盤の実現 TypeScriptで代数的データ型を活用する
kakehashi
PRO
2
220
Featured
See All Featured
The Language of Interfaces
destraynor
158
25k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Balancing Empowerment & Direction
lara
1
290
For a Future-Friendly Web
brad_frost
179
9.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
We Have a Design System, Now What?
morganepeng
52
7.6k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Become a Pro
speakerdeck
PRO
28
5.4k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Agile that works and the tools we love
rasmusluckow
329
21k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Transcript
োʹͯ͢Δͱ͜Ζͳ͠ αΠϘζגࣜձࣾ @yokotaso
We’re sorry for …
ӡ༻োͷ • ͝໎Λ͓͔͚ͨ͠Έͳ͞· ͝ΊΜͳ͍͞ • ࢹɾରࡦɾௐࠪɾվળΛʑੋվળ • վળ·ͩ·ͩಓ • αΠϘζΛӬ͘ΑΖ͓͘͠ئ͍͠·͢
ΫϥυͷنͱՔಇ • ͝ܖ͍͍͍ͨͩͯΔձ༷ࣾ 1ສ8ઍࣾ
ӡ༻ো
Boo!
ͦΜͳ͜ͱͳ͍
ŧŔŕŪGOOD
ࣦഊ͔ΒపఈతʹֶͿ োֶश 4
جૅࣝΛ͚ͭΔ
جૅతͳૉཆΛຏ͘ ίϯϐϡʔλͷجૅΛΖ͏
ੜ͖ͨσʔλ͕োʹ͋Δ • ϘτϧωοΫͲ͜ʁ • େنαʔϏεٕज़ೖΛ ࢀর͠ͳ͕Βௐࠪ͢ΔͱษڧʹͳΔ • ϝτϦΫεࢹπʔϧͰ؍͠Α͏ • جૅతͳࣝಎ͕
োௐࠪͷͨͼʹຏ͔ΕΔ
ࣝͱܦݧཌྷΛत͚ͯ͘ΕΔ • ະͷʹग़ձͬͨΒཱͪฦΔॴ • ͍͠΄Ͳղܾͷࢳޱʹ • ҰਓͰௐࠪΛਐΊΒΕΔΑ͏ʹͳͬͨ • ϝτϦΫε͔ΒݪҼΛ༧Ͱ͖ΔΑ͏ʹ
ίϯϐϡʔλʔͷେࣄͳࣄ ো͕ڭ͑ͯ͘Εͨ
ࣝΛਂ۷Γ͢Δ
ಈ࡞ݪཧΛਂ͘ཧղ͢Δ ো࠷ߴͷྑͰ͋Δ
MySQLͷΠϯσοΫε͕͑ͳ͍
খ͞ͳෆ۩߹վम͕ݪҼ • ॏෳআڈͷͨΊʹGROUP BY Λ҆қʹ͚ͭͨͷ͕ݪҼ • JOIN࣌ʹར༻ͨ͠ΠϯσοΫε͕GROUP BY ʹ࠶ར༻Ͱ͖ͳ͍ •
େྔͷϨίʔυʹରͯ͠filesort͕ͬͯྦ
ཧղͨͭ͠Γʹͳͬͯ·ͤΜ͔ • োͷͨͼʹجຊతͳಈ࡞ݪཧΛ֬ೝ • োௐࠪΛ௨ͯ͠ಈ࡞ݪཧͷཧղ͕ਂ·Δ • ಈ࡞ݪཧ͕ਂ͘ཧղͰ͖͍ͯͳ͍ؾ͖ͮ
ো࠷ߴͷྑͰ͋Δ
νʔϜͰڧ͘ͳΔ
ࣦഊΛΏΔ͢จԽ ࣦഊͷڞ༗ஏ͕ͩʹཱͭʂ
Seasar2 S2DAO Ҡߦࣦഊ
͝ΊΜͳ͍͞!͝ΊΜͳ͍͞! • SeasarͷEOLʹ͏Spring FrameworkҠߦ • Seasar S2DAO͔ΒHibernateͷҠߦࣦഊ • ύϑΥʔϚϯεྼԽɺOutOfMemoryError… •
શഊͰ͢ɻ͝໎Λ͓͔͚͠·ͨ͠
ࣦഊΛड͚ೖΕΔจԽ
PostmortemΛॻ͜͏ • Λ٬؍తʹཧ͢ΔͨΊʹ༗༻ • ࣦഊΛੳɾڞ༗ɾࢭ • AWS S3 େنো •
git lab ຊ൪σʔλআ
ࣦഊΛڞ༗Ͱ͖ΔจԽΛ࡞Δ • ࣦഊΛڞ༗ͯ͠܁Γฦ͞ͳ͍จԽΛ࡞Ζ͏ • ࣦഊʹ͍ͭͯޠΔਓͷଘࡏҙٛେ͖͍ • ࣦഊΛڞ༗ͯ͘͠ΕΔਓʹѹతײँ • ݠڏɾଚܟɾ৴པ(HRT) ΛԿ֬ೝ͠Α͏
• ݸਓͷࣦഊͰͳ͍ɺ৫ͷࣦഊͩ
None
ࣦഊޭͷதؒͰ͔͠ͳ͍
సΜͰͨͩͰى͖͕͋Βͳ͍ʂ • ࣦഊͷչ͕͠͞վળʹͭͳ͕Δ • S2Dao͔ΒHibernateͷҠߦࣦഊΛ׆͔ͯ͠ • JDBCTemplateΛར༻ͯ͠࠶ઃܭ • OSSͱͯ͠ެ։༧ఆ
ࣦഊͷڞ༗ஏ͕ͩʹཱͭʂ
Α͜͠·ͳੜ͖ํ
ͣͿͱ͘ੜ͖Δ ੜ͖͍ͯΔ͚ͩͰ·Δ͏͚
Java ṖͷύϑΥʔϚϯεྼԽ
ղܾ͠·ͨ͠ (๑•̀ŷ•́)و✧ • JIT Compiler͕ఀࢭ͢Δέʔε͕͋Δ • JVM͕JIT Compileͨ͠ίʔυΛࣺͯΔ • JIT
Compiler͕෮ؼͤͣɺ࠷దԽͷ͔͔Βͳ͍ Byte CodeΛJava͕࣮ߦ͠ଓ͚Δ • ύϑΥʔϚϯεྼԽΛى͜͢
ղܾͷࢳޱ • GCʹׂΓͯΔThread CPU͔Βܾ·Δ • GCʹׂΓͯΒΕͨThread CPUΛ100%ઐ༗͢Δ
ղܾͷࢳޱ • GCʹΑΔCPUར༻Λߟྀͯ͠༨༟͕͋Δ • Full GCൃੜ͍ͯ͠ͳ͍ • GCΛݪҼ͔Βഉআ • CPUෛՙ্͕͕ΔέʔεΛMLͰಡΈ͋͞Δ
ϒϩάʹެ։
None
͝Ѫಡ͋Γ͕ͱ͏͍͟͝·͢ʂ • ͜ͷهࣄ͚ͩͰ 1ສ5ઍPV • ࠷ऴతʹ 700ͯϒ͘Β͍ • OSS͓ੈʹͳΓͬͺͳ͠ •
ใެ։Ͱߩݙ͍ͨ͠ؾ࣋ͪ
ͣͿͱ͘ੜ͖ΔΑ͏ʹ • ໘ന͍ٕज़هࣄʹͳͬͨΒṶ͚ͷ • ໘ന͍ࣄ͋ͬͨΒ͍͍ͳ͕ϞνϕʔγϣϯʹมԽ • ࠶ىಈͰճආͭͭ͠ظؒɺো͕ൃੜ͍ͯͨ͠ • Θ͔Βͳ͍͍ͯ͘ɾಀ͍͍͛ͯ •
ੜ͖͍ͯΔ͚ͩͰ·Δ͏͚ͷਫ਼ਆ
ௐΔ͚ͩͰ·Δ͏͚ʂ
োֶशɺ͔ͲΓ·͔ͬ
োʹͯ͢Δͱ͜Ζͳ͠