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
3.9k
障害にすてるところなし
tomoya yokota
March 11, 2017
Tweet
Share
More Decks by tomoya yokota
See All by tomoya yokota
レガシーSolrの Elasticseach移行 Cybozu Tech Meetup #14
yokotaso
0
370
introduction-to-modern-gc
yokotaso
10
3k
product-sutainability
yokotaso
0
300
the-art-of-develop-culture-at-cybozu
yokotaso
0
3.2k
Go-To-Java9
yokotaso
0
210
Other Decks in Technology
See All in Technology
転生CISOサバイバル・ガイド / CISO Career Transition Survival Guide
kanny
3
1k
リアルタイム分析データベースで実現する SQLベースのオブザーバビリティ
mikimatsumoto
0
1.4k
N=1から解き明かすAWS ソリューションアーキテクトの魅力
kiiwami
0
130
エンジニアが加速させるプロダクトディスカバリー 〜最速で価値ある機能を見つける方法〜 / product discovery accelerated by engineers
rince
4
400
Nekko Cloud、 これまでとこれから ~学生サークルが作る、 小さなクラウド
logica0419
2
990
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
7.4k
レビューを増やしつつ 高評価維持するテクニック
tsuzuki817
1
770
依存パッケージの更新はコツコツが勝つコツ! / phpcon_nagoya2025
blue_goheimochi
3
130
2.5Dモデルのすべて
yu4u
2
900
組織貢献をするフリーランスエンジニアという生き方
n_takehata
2
1.3k
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
250
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
230
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Done Done
chrislema
182
16k
Site-Speed That Sticks
csswizardry
4
380
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Fireside Chat
paigeccino
34
3.2k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
KATA
mclloyd
29
14k
Docker and Python
trallard
44
3.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
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͓ੈʹͳΓͬͺͳ͠ •
ใެ։Ͱߩݙ͍ͨ͠ؾ࣋ͪ
ͣͿͱ͘ੜ͖ΔΑ͏ʹ • ໘ന͍ٕज़هࣄʹͳͬͨΒṶ͚ͷ • ໘ന͍ࣄ͋ͬͨΒ͍͍ͳ͕ϞνϕʔγϣϯʹมԽ • ࠶ىಈͰճආͭͭ͠ظؒɺো͕ൃੜ͍ͯͨ͠ • Θ͔Βͳ͍͍ͯ͘ɾಀ͍͍͛ͯ •
ੜ͖͍ͯΔ͚ͩͰ·Δ͏͚ͷਫ਼ਆ
ௐΔ͚ͩͰ·Δ͏͚ʂ
োֶशɺ͔ͲΓ·͔ͬ
োʹͯ͢Δͱ͜Ζͳ͠