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
2.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ソーシャルゲームの 高負荷とかじゃない 地味な方の話
phpblt#4
takahiro ogasawara
April 21, 2016
More Decks by takahiro ogasawara
See All by takahiro ogasawara
新Teamで始めたDesignDoc運用と 定着化のためにやったこと
ogataka50
1
1.4k
Other Decks in Programming
See All in Programming
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
490
Dockerfile CMD for Node.js
grazie1999
0
110
ソフトウェアラスタライザ
fadis
1
260
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
270
テーブルをDELETEした
yuzneri
0
150
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
200
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
260
Go 1.27 における memory allocation の高速化
andpad
0
290
Oxlintはいいぞ(続)
yug1224
1
340
FDEが実現するAI駆動経営の現在地
gonta
2
290
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
350
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.6k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
440
Designing for Performance
lara
611
70k
30 Presentation Tips
portentint
PRO
1
370
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
260
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
250
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
480
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!