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
takahiro ogasawara
April 21, 2016
Programming
0
1.9k
ソーシャルゲームの 高負荷とかじゃない 地味な方の話
phpblt#4
takahiro ogasawara
April 21, 2016
Tweet
Share
More Decks by takahiro ogasawara
See All by takahiro ogasawara
新Teamで始めたDesignDoc運用と 定着化のためにやったこと
ogataka50
2
1.1k
Other Decks in Programming
See All in Programming
「兵法」から見る質とスピード
ickx
0
260
プロダクト開発でも使おう 関数のオーバーロード
yoiwamoto
0
150
Using AI Tools Around Software Development
inouehi
0
1.2k
A comprehensive view of refactoring
marabesi
0
130
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
210
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
190
単体テストの始め方/作り方
toms74209200
0
430
F#で自在につくる静的ブログサイト - 関数型まつり2025
pizzacat83
0
290
AIエージェントによるテストフレームワーク Arbigent
takahirom
0
370
Java on Azure で LangGraph!
kohei3110
0
110
GoのGenericsによるslice操作との付き合い方
syumai
2
530
UPDATEがシステムを複雑にする? イミュータブルデータモデルのすすめ
shimomura
1
530
Featured
See All Featured
Faster Mobile Websites
deanohume
307
31k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
What's in a price? How to price your products and services
michaelherold
245
12k
Site-Speed That Sticks
csswizardry
10
630
How GitHub (no longer) Works
holman
314
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.7k
Documentation Writing (for coders)
carmenintech
71
4.9k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Building Applications with DynamoDB
mza
95
6.4k
Automating Front-end Workflow
addyosmani
1370
200k
Practical Orchestrator
shlominoach
188
11k
Transcript
ιʔγϟϧήʔϜͷ ߴෛՙͱ͔͡Όͳ͍ ຯͳํͷ @ogasora50
ࣗݾհ • খּݪ ۭ(@ogasora50) • cygames αʔόʔαΠυΤϯδχΞ • ࠷ۙɺṖʹ؍༿২ʹ·Δ
ࣗݾհ • খּݪ ۭ(@ogasora50) • cygames αʔόʔαΠυΤϯδχΞ • ࠷ۙɺṖʹ؍༿২ʹ·Δ
• ͋ͬ͞Γӽౙࣦഊ • ੜ໋ʹ A/BςετͳΜͯͳ͍
ιʔγϟϧήʔϜͷ ߴෛՙͱ͔͡Όͳ͍ ຯͳํͷ
όονॲཧͱ͔ σʔλཧͷΛͯ͠Έ·͢
όονॲཧ͕ଟΊ • όονͰͰ͖Δ͜ͱόονͰ • Ͱ͖Δ͚ͩϨεϙϯεΛૣ͍ͨ͘͠ • ϢʔβΞΫηε͕ͳͯ͘ॲཧ͍ͨ͠
όονॲཧͰؾΛ͚͍ͭͯΔࣄ • σʔλ͕૿͑ͯmemory_over͠ͳ͍͔ • ઃఆϛεͳͲͷରࡦ • ෆ۩߹/ো࣌ରԠ • ଐਓԽ͠ͳ͍Α͏࠷ݶͷϧʔϧ/υΩϡϝϯτԽ
memory_overରࡦ • ͍ΘΏΔ • ΄ͲΜͲྻ͕Ͱ͔͗͢Δ/ແବͳྻ࡞Γ͗͢ Fatal error: Allowed memory size
of xxx bytes exhausted
memory_overରࡦ • ඞཁͳͷΛඞཁͳ͚ͩɺখ͚ʹ·ͱΊͯॲཧ͢ΔΑ͏ʹ • ֎෦ϑΝΠϧʹग़ྗɺ͔ͦ͜ΒҰఆͣͭॲཧ • BULK INSERT • INSERT
… ON DIPLICATE KEY UPDATE • ඞͣຊ൪/μϛʔσʔλΛͬͯςετ
ઃఆϛεͳͲͷରࡦ • Ϛελʔσʔλʹϛε͕͋ͬͨΒͲ͏͠Α͏ͳ͍ɾɾɾ • σʔλͷෆ߹͕ͳ͍͔νΣοΫπʔϧΛఆظ࣮ߦ • dry_run࣮ͯ͠ࣄલʹ݁Ռ֬ೝ
ෆ۩߹/ো࣌ରԠ • ෆ۩߹/োʹૉૣ͘ؾ͚Δ͔ɺૉૣ͘ରԠͰ͖Δ͔ • ॲཧͷ൱Λࣾsnsʹ௨ • ແବͳ͙Β͍ͷϩάग़ྗ͕ͪΐ͏Ͳ͍͍ • ్தͰམͪͨͱͯ͠ɺΓ͠/࠶࣮ߦͰ͖ΔΑ͏ʹ
ϧʔϧ/υΩϡϝϯτԽ • ඞͣreadme࡞Δ ࠷ݶͷॲཧ/Ҿͷ֓ཁ͙Β͍ • ಓʹෳਓͰ୲ɺ࡞ۀΛճ͢ • όον͓͡͞Μ࡞Βͳ͍Α͏ʹ
ϧʔϧ/υΩϡϝϯτԽ • ӡ༻͕͘ͳΔʹͭΕɺόον࣮ߦαʔόʔ͕૿͑Δɾɾɾ • phpdocͷcron൛ɺcrondoc࡞ͬͨ • markdownܗࣜͷυΩϡϝϯτੜɺgithub͔Βࢀর 4)&--CJOCBTI 1"5)TCJOCJOVTSTCJOVTSCJO ."*-50SPPU
)0.& !UJUMFNPOEBZTI !BVUIPSIPHF !QBSBNFOW<EFWcTUHcQSPE> TUBSUFWFSZNPOEBZ TIIPNFIPHFIBQQZ@NPOEBZTIQSPE
σʔλཧ
σʔλཧ • ͱʹ͔͘σʔλ͕ͲΜͲΜΓΓ૿͑Δ • ඞཁͳͷΈอ࣋͢ΔΑ͏ʹ
σʔλཧ • ඞཁͳ͘ͳͬͨͷͲΜͲΜύʔδ • ύʔςΟγϣϯΛຖdrop & add • Πϕϯτ୯ҐͰςʔϒϧ࡞ɺΠϕϯτऴྃޙdrop
dropͰ͖ͳ͍ • σʔλྔେ͖͗ͯ͢ɺdrop࣌ʹio_waitͰϨεϙϯε͕ྼԽ • σʔλϑΝΠϧΛΏΔ͔ʹআ͢ΔΑ͏ʹͨ͠Βղܾ 1. ςʔϒϧͷσʔλϑΝΠϧʹϋʔυϦϯΫΛషΔ 2. drop table
3. linuxͷํͷ truncateͰঃʑʹαΠζΛΓ٧Ίremove • drop tableࣗಈԽ
·ͱΊ • όονඞཁͳͷΛඞཁͳ͚ͩɺখ͚ʹ·ͱΊͯॲཧ • ෆ۩߹/ো͕ى͖Δ͜ͱΛఆͨ͠ॲཧΛ • σʔλඞཁ࠷খݶอ࣋͢ΔΑ͏ɺ ύʔςΟγϣϯɺςʔϒϧ୯ҐͰύʔδͰ͖ΔΑ͏ʹ • ڊେͳςʔϒϧΛdrop͢Δࡍɺ
io_wait͕ى͖ͳ͍Α͏ʹΏΔ͔ʹσʔλϑΝΠϧΛআ͢Δ
enjoy engineering!