์™ธ๋ถ€ ์ €์žฅ์†Œ ์ง€์›์ด ํ™œ์„ฑํ™”๋œ Memcached 1.6.0 ์ถœ์‹œ

์ผ์–ด๋‚ฌ๋‹ค ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์บ์‹ฑ ์‹œ์Šคํ…œ์˜ ๋Œ€ํญ ์ถœ์‹œ ๋ฉค์บ์‹œ๋“œ 1.6.0, ํ‚ค/๊ฐ’ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ž‘๋™ํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. Memcached๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ DBMS ๋ฐ ์ค‘๊ฐ„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์บ์‹ฑํ•˜์—ฌ ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ์‚ฌ์ดํŠธ์˜ ์ž‘์—… ์†๋„๋ฅผ ๋†’์ด๋Š” ๊ฒฝ๋Ÿ‰ ์†”๋ฃจ์…˜์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธ ๊ณต๊ธ‰ BSD ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ.

์ƒˆ ๋ฒ„์ „์—์„œ๋Š” ์Šคํ† ๋ฆฌ์ง€ ๊ตฌํ˜„์ด ์•ˆ์ •ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค."์—‘์Šค์Šคํ† ์–ด"๋Š” ์ด์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ์ถ•๋˜์ง€๋งŒ(๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด "-disable-extstore" ์˜ต์…˜์ด ์ œ๊ณต๋จ) ์‹œ์ž‘ ์‹œ ๋ช…์‹œ์ ์ธ ํ™œ์„ฑํ™”๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(์ด์ „ ์„ค์น˜๋Š” ์—…๋ฐ์ดํŠธ ํ›„์—๋„ ๋ณ€๊ฒฝ ์—†์ด ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค). extstore๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์•ˆ์ •์ ์ธ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€๋งŒ ๋งค์šฐ ํฐ ์‹œ์Šคํ…œ์—์„œ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” ์ฃผ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Extstore๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด SSD/ํ”Œ๋ž˜์‹œ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์บ์‹œ ํฌ๊ธฐ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RAM๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ”Œ๋ž˜์‹œ ์ €์žฅ์†Œ๋„ ์˜๊ตฌ์ ์ด์ง€ ์•Š์œผ๋ฉฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์žฌ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ชจ๋“œ์˜ ๋ฒ”์œ„๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์˜ ํšจ์œจ์ ์ธ ์บ์‹ฑ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "extstore"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ‚ค์™€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ RAM์—๋งŒ ์ €์žฅ๋˜์ง€๋งŒ ํ‚ค์™€ ๊ด€๋ จ๋œ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ(ํฌ๊ธฐ๊ฐ€ ์„ค์ •๋œ ์ž„๊ณ„๊ฐ’์„ ์ดˆ๊ณผํ•จ)๋Š” ์™ธ๋ถ€ ์ €์žฅ์†Œ์— ์ €์žฅ๋˜๊ณ  ํฌ์ธํ„ฐ๋งŒ RAM์— ๋‚จ์Šต๋‹ˆ๋‹ค.

ํ‚ค๊ฐ€ ์ž‘์€ ๋ฐ์ดํ„ฐ์™€ ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ Memcached๋Š” ํ‰์†Œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€ํ•˜๋ฉฐ ์™ธ๋ถ€ ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งŽ์œผ๋ฉด ๊ฐ€์žฅ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ RAM์˜ ์บ์‹œ์— ์ถ”๊ฐ€๋กœ ์™„์ „ํžˆ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1024์ดˆ ๋™์•ˆ ์•ก์„ธ์Šค๋˜์ง€ ์•Š์€ 3600๋ฐ”์ดํŠธ๋ณด๋‹ค ํฐ ๊ฐœ์ฒด๋งŒ ํ”Œ๋ž˜์‹œ๋กœ ์žฌ์„ค์ •ํ•˜๋„๋ก ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ).

๊ตฌํ˜„์€ ์Šคํ† ๋ฆฌ์ง€ ํšจ์œจ์„ฑ(๋†’์€ ์กฐ๊ฐํ™” ์ˆ˜์ค€)์„ ํฌ์ƒํ•˜๋ฉด์„œ ์ตœ๋Œ€ ์„ฑ๋Šฅ๊ณผ ์ตœ์†Œ CPU ๋กœ๋“œ๋ฅผ ๋ณด์žฅํ•˜๋„๋ก ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋ž˜์‹œ ๋“œ๋ผ์ด๋ธŒ์˜ ์ˆ˜๋ช…์„ ์—ฐ์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฒ„ํผ๋ง๋˜๊ณ  ์Šคํ† ๋ฆฌ์ง€๋กœ ํ”Œ๋Ÿฌ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ์ด์— ์บ์‹œ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด ๋ฆด๋ฆฌ์Šค 1.5.18์— ๋‚˜ํƒ€๋‚œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์บ์‹œ ๋คํ”„๋ฅผ ํŒŒ์ผ๋กœ ๋คํ”„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์‹œ์ž‘ํ•  ๋•Œ ์ด ํŒŒ์ผ์—์„œ ์บ์‹œ๋ฅผ ๋ณต์›ํ•˜์—ฌ ์บ์‹œ๊ฐ€ ๋น„์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ˜ํ…์ธ  ํ”„๋กœ์„ธ์„œ์˜ ์ตœ๋Œ€ ๋กœ๋“œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์บ์‹œ๋Š” ์ฆ‰์‹œ "์›œ" ์ƒํƒœ๊ฐ€ ๋จ).

Memcached 1.6์˜ ๋‘ ๋ฒˆ์งธ ์ค‘์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹จ์ผ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋‚ด์—์„œ ์ผ๊ด„ ์š”์ฒญ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์กฐ์ •๋œ ๋„คํŠธ์›Œํฌ ํ†ต์‹  ์ฝ”๋“œ์˜ ์žฌ์ž‘์—…์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ๋‹จ์ผ TCP ํŒจํ‚ท์œผ๋กœ ์—ฌ๋Ÿฌ GET ๋ช…๋ น์„ ๋ณด๋‚ผ ๋•Œ memcached๊ฐ€ ๋ณ„๋„์˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. Memcached 1.6์—์„œ๋Š” ๋‹จ์ผ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ „์†กํ•˜์—ฌ ์‘๋‹ต์„ ์ง‘๊ณ„ํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด์ œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ๋‹น ํ‰๊ท  1.5๊ฐœ์˜ ํ‚ค๊ฐ€ ์žˆ์œผ๋ฉฐ, ํ…Œ์ŠคํŠธ์—์„œ CPU ๋กœ๋“œ๊ฐ€ ์ตœ๋Œ€ 25% ๊ฐ์†Œํ•˜๊ณ  ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๋ช‡ ํผ์„ผํŠธ ๊ฐ์†Œํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์žฌ์„ค๊ณ„ํ•จ์œผ๋กœ์จ ๋ฒ„ํผ๋ฅผ ์ •์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๋Œ€์‹  ํ•„์š”์— ๋”ฐ๋ผ ๋ฒ„ํผ๋ฅผ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด ์ตœ์ ํ™”๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ค์ •ํ•œ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด 4.5KB์—์„œ 400-500๋ฐ”์ดํŠธ๋กœ ์ƒˆ ๋ช…๋ น์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ์ค„์˜€์œผ๋ฉฐ, ๋˜ํ•œ ๋ถˆํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์กฐ๊ฐํ™”๋ฅผ ์ดˆ๋ž˜ํ•˜๋Š” malloc, realloc ๋ฐ free์— ๋Œ€ํ•œ ๋งŽ์€ ํ˜ธ์ถœ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ์ˆ˜๊ฐ€ ๋งŽ์€ ์‹œ์Šคํ…œ. ์ด์ œ ๊ฐ ์ž‘์—…์ž ์Šค๋ ˆ๋“œ๋Š” ํ™œ์„ฑ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ์ž์ฒด ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๋ฒ„ํผ ํ’€์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋ ค๋ฉด
"-o resp_obj_mem_limit=N" ๋ฐ "-o read_buf_mem_limt=N" ์˜ต์…˜์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

Branch 1.6์—์„œ๋Š” ๋˜ํ•œ ๋‹ค์Œ์˜ ์ง€์› ์ค‘๋‹จ์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ ์„œ๋ฒ„์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ. ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ •์€ ๊ณ„์†๋˜์ง€๋งŒ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ๊ธฐ์กด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋Š” ํฌํŒ…๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ ๋ณ€ํ•จ์—†์ด ๊ณ„์† ๋ฐœ์ „ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ์ด ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ (๊ฐ„๋‹จํ•œ ๋ฉ”ํƒ€ ๋ช…๋ น์ด ํฌํ•จ๋œ ํ”„๋กœํ† ์ฝœ์˜ ํ…์ŠคํŠธ ๋ฒ„์ „), ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ์˜ ์ตœ์  ์กฐํ•ฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ์€ ์ด์ „์— ํ…์ŠคํŠธ ๋ฐ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ชจ๋“  ์ž‘์—…์„ ํฌ๊ด„ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€