Zero Copy๋ฅผ ์•„์‹œ๋‚˜์š”? with kotlin S3 upload

์ฝ”๋“œ๋ ˆ๋ฒจ์—์„œ ํŒŒ์ผ ์ „์†ก ๋“ฑ local storage(e.g. disk)์—์„œ ํŒŒ์ผ์„ ์ฝ์–ด์„œ ์™ธ๋ถ€๋กœ ๋ณด๋‚ด๋Š” ๋กœ์ง์„ ๊ตฌ์„ฑํ–ˆ๋‹ค๋ฉด ์–ด๋–ค ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋ ๊นŒ์š”?๋ณดํ†ต ํฌ๊ฒŒ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๋„๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.1. OS kernel context์—์„œ local storage์— ์žˆ๋Š” ํŒŒ์ผ์„ ์ฝ์–ด Read Buffer์— ๋‹ด๊ณ 2. Application context์—์„œ ํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ฅผ Application Buffer์— ์˜ฌ๋ฆฌ๊ณ  ๋‹ค์‹œ kernel context์˜ Socket Buffer๋กœ ์ „๋‹ฌ3. NIC Buffer๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€๋กœ ์ „์†ก ์—ฌ๊ธฐ์„œ Buffer ๊ฐ„ ์—ฐ๊ฒฐ์— ์ฃผ๋ชฉํ•ด๋ณผ๊นŒ์š”?์œ„์— ํฌ์ปค์Šคํ•œ ๋ถ€๋ถ„์„ ์‚ดํŽด๋ณด๋ฉด Application Buffer์— ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ ๋” ๋ณต์ œํ•˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ทผ๋ฐ ์ด ๋ถ€๋ถ„ ๋‚ญ๋น„๊ฐ™์€๋ฐ ์ข€ ํšจ์œจ..

BackEnd 2024. 11. 24. 18:50
์šฐ๋ฆฌ ์„œ๋ฒ„์— OOMKilled ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ์–ด์š” - ํšŒ๊ณ ํŽธ

์ด ๊ธ€์€ ์ตœ๊ทผ์— ์žˆ์—ˆ๋˜ ์„œ๋ฒ„ OOMKilled ์žฅ์•  ๊ณผ์ •์„ ๊ธฐ๋ก ๋ฐ ๊ณต์œ ํ•˜๋ฉฐ ํšŒ๊ณ ํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.๋˜ํ•œ ์ด ๊ธ€์€ ์ธํ”„๋ผ ๋ ˆ๋ฒจ(cpu, memory)์—์„œ์˜ ์žฅ์•  ๊ฐ์ง€ ๋ฐ ๋Œ€์‘ ํ”„๋กœ์„ธ์Šค์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜๊ธฐ ๋•Œ๋ฌธ์— NPE(Null Point Exception) ๊ฐ™์€ ์ฝ”๋“œ ๋ ˆ๋ฒจ์—์„œ์˜ ๋ช…ํ™•ํ•˜๊ณ  ๋‹จ์ˆœํ•œ ๋ฌธ์ œ๋Š” ํฌ๊ฒŒ ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด OOMKilled ์žฅ์•  ๋ฐœ์ƒ ์‹œ ์–ด๋–ป๊ฒŒ ๋Œ€์‘ํ•˜์‹œ๋‚˜์š”?์ €๋Š” ๋ณดํ†ต ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค๋กœ ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค.1. ์žฅ์•  ๊ฐ์ง€2. ์˜ˆ์ƒ๋˜๋Š” ์›์ธ ๋ฒ”์œ„๋ฅผ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ์ฐพ๊ณ  ๊ฐ€์„ค์„ ์„ธ์šด๋‹ค. (๊ฐ€์„ค ์ˆ˜๋ฆฝ)3. ๊ฐ€์„ค์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด APM, log ๋“ฑ ๋‹จ์„œ๋“ค์„ ์ฐพ๊ณ  ๊ฐ€์„ค์„ ํ™•์ธํ•˜๊ณ  ์›์ธ ๋ฒ”์œ„๋ฅผ ์ขํ˜€๊ฐ„๋‹ค. (๊ฐ€์„ค ๊ฒ€์ฆ ๋ฐ route finding)4. ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์›์ธ์„..

BackEnd 2024. 11. 10. 21:08