Gunicorn: ์žฅ๊ธฐ๊ฐ„ ์„œ๋น„์Šค ์‹คํ–‰ ํ›„ ๋ฉ”๋ชจ๋ฆฌ ์ฆ๊ฐ€

์— ๋งŒ๋“  2018๋…„ 10์›” 10์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: benoitc/gunicorn

์•ˆ๋…•ํ•˜์„ธ์š” :
๋‚˜๋Š” ํ”Œ๋ผ์Šคํฌ + gunicorn์„ ์‚ฌ์šฉํ•˜์—ฌ API ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ž‘์—…์ž ํ”„๋กœ์„ธ์„œ ๊ฐ„์— ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์— gunicorn.conf์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  "gunicorn -c gunicorn.conf"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. gunicorn.conf์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ํ•œ ๋ฒˆ๋งŒ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ๋ชจ๋“  ์ž‘์—…์ž ํ”„๋กœ์„ธ์„œ๋Š” ๊ณตํ†ต์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ๊ทธ๋žจ์˜ ๋น… ๋ฐ์ดํ„ฐ๋Š” ์“ฐ๊ธฐ ์ž‘์—… ์—†์ด ์ค€๋น„๋งŒ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์˜ค๋žซ๋™์•ˆ ์‹คํ–‰ํ•˜๋ฉด ๊ฐ‘์ž๊ธฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 1G ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. gunicorn์—์„œ ์“ฐ๊ธฐ ์ž‘์—…์ด ์‹œ์Šคํ…œ์— ๊ธฐ๋ก ์ค‘ ๋ณต์‚ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ผ์œผํ‚ค๋Š” ์›์ธ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž‘์—…์ž ํ”„๋กœ์„ธ์„œ ๊ฐ„์— ๋น… ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๋‚˜๋Š” ์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œํ•ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ํšŒ์‹ ์„ ๊ธฐ๋Œ€ํ•˜์‹ญ์‹œ์˜ค!!! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ #1640๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์œ ์ผํ•œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ Python ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ํ”ผํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ mmap ๋ชจ๋“ˆ ์ด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์ด๊ฒƒ์€ #1640๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์œ ์ผํ•œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ Python ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ํ”ผํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ mmap ๋ชจ๋“ˆ ์ด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!! ๋งค์šฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š”:
์•Œ๋ ค์ฃผ์‹  ์ •๋ณด๋กœ ์ €๋Š” ํŒŒ์ด์ฌ์„ 2.7์—์„œ 3.7๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  gc.freeze()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ์— ์˜ํ•ด ์ˆ˜์ง‘๋œ ์ผ๋ถ€ ๊ฐ์ฒด๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” "๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ‘์ž๊ธฐ 1G ์ฆ๊ฐ€"ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š์ง€๋งŒ ๊ฐ ํ•˜์œ„ ํ”„๋กœ์„ธ์„œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 500M ์ด์ƒ ์ฆ๊ฐ€ํ•œ ๋‹ค์Œ ์„ฑ์žฅ์„ ์ค‘์ง€ํ•  ๋•Œ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ฒœ์ฒœํžˆ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” gc.freeze() ๊ฐ€ ์ž‘๋™ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ๋ชจ์–‘์„ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•œ ์ผ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰