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
Memcached内存管理
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
jiangbo
August 31, 2012
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Memcached内存管理
jiangbo
August 31, 2012
More Decks by jiangbo
See All by jiangbo
HDFS RAID
jiangbo
0
3.9k
HDFS
jiangbo
0
200
awk
jiangbo
4
320
vim
jiangbo
8
500
Featured
See All Featured
Tell your own story through comics
letsgokoyo
1
950
The Curious Case for Waylosing
cassininazir
1
390
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
How to build a perfect <img>
jonoalderson
1
5.6k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
250
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Done Done
chrislema
186
16k
Chasing Engaging Ingredients in Design
codingconduct
0
220
Ethics towards AI in product and experience design
skipperchong
2
310
Bash Introduction
62gerente
615
220k
Designing for humans not robots
tammielis
254
26k
Transcript
Memcached ଘཧ jiangbo$_ @mokeyj Friday, August 31, 12
Slab, Page, Chunk, Item Chunk ^ +------------------|------------------------------------------------------------+ | Memory |
| | +---------------|---------------------------------------------------------+ | | | +--------|---------------------+ +------------------------------+ | | | | |Page1 +-|---+ +-----+ +-----+ | |Page2 +-----+ +-----+ +-----+ | | | | | Slab |(1M) | 96B | | 68B | | 72B | | |(1M) | 92B | | 76B | | 84B | | | | | | 1 | +-----+ +-----+ +-----+ | | +-----+ +-----+ +-----+ | | | | | +------------------------------+ +------------------------------+ | | | +-------------------------------------------------------------------------+ | | | | +-------------------------------------------------------------------------+ | | | +------------------------------+ +------------------------------+ | | | | |Page1 +------+ +------+ | |Page2 +------+ +-------+ | | | | | Slab | (1M) | 128B | | 120B | | |(1M) | 128B | | 97B | | | | | | 2 | +------+ +------+ | | +------+ +-------+ | | | | | +------------------------------+ +------------------------------+ | | | +-------------------------------------------------------------------------+ | +-------------------------------------------------------------------------------+ Friday, August 31, 12
Item +---------------------------------------+ | key-value | cas | suffix | item
head | +---------------------------------------+ 实际ଘ์తਾ Item Size= data size + 32bytes item head Friday, August 31, 12
Chunk +------------------------------+ | data item | empty space | +------------------------------+
ଘ์ਾత࠷খ单ݩ Friday, August 31, 12
Page +-------------------------------------+ | chunk1 | chunk2 | chunk3 | chunk4
| +-------------------------------------+ ਃ请༻ଘత࠷খۭ间ɼ ᘍ认为1M Friday, August 31, 12
Slab +--------------------------------+ | Page1 | Page2 | Page3 | Page4
| +--------------------------------+ ҈chunkେখෆಉ䎞কଘ䎞ଟslabۭ间 Friday, August 31, 12
Slabॳ࢝Խ • ࠜਾෆಉతchunk_size䎞为ଟslabۭ间 • ॳ࢝࠷খchunk_sizeʢᘍ认为80=48+32ʣ • ࠜਾfactor҈ൺྫ递⃧ʢᘍ认1.25ʣ ࢀ⻅见 slabs.cதslabs_init() Friday,
August 31, 12
ਾଘ储 • 计ࢉitemେখɼፙ౸߹㭕తslab • ਗ਼ཧ该slabதత过ظchunk • ༗过ظchunkɼ则ਃ请৽ۭ间(slab_alloc) • ਃ请ۭ间ࣦ败ɼ༻LRUஞग़ ࢀ⻅见item.cதdo_item_alloc()
Friday, August 31, 12
ਃ请Slab • ဓSlotsྻදதਃ请 • ༗则ਃ请ҰPageత৽ۭ间 • ਃ请ۭ间ੋձઌஅslab_reasignɼᘍ认ෆ 䇖启 ࢀ⻅见slabs.cதslab_alloc() Friday,
August 31, 12
ଘ࿘费 • Item Size <= Chunk Size • Page Size%Chunk
Size ? • ቮ给slabతۭ间ᘍ认ෆճᏅ Friday, August 31, 12
Ҋྫੳ • ఆ⻓长问题导கେྔஞग़ Friday, August 31, 12
THX Friday, August 31, 12