MMU(Memory Management Unit)๋ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์ฌ ๋ ์ ์ฐํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ๋ง๋ฒ ๊ฐ์ ์ฅ์น์ ๋๋ค. ์ฃผ๊ธฐ์ต์ฅ์น๊ด๋ฆฌ์ ํต์ฌ์ '๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ ๊ด๋ฆฌํ ์ ์์๊น'์ ์์ต๋๋ค.
๊ณผ๊ฑฐ์๋ ์ปดํจํฐ๊ฐ ํ ๋ฒ์ ํ๋์ ํ๋ก๊ทธ๋จ๋ง ์คํํด๋ ์ถฉ๋ถํ์ง๋ง,
์์ฆ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ๋์์ ์คํ๋๋ ๋ฉํฐํ์คํน์ด ๋น์ฐํ ์๋์์.
ํ์ง๋ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๐งจ ๋ณด์ ์ํ๋ฟ๋ง ์๋๋ผ, ์์คํ ์ ์ฒด๊ฐ ๋ป์ ์ ์์ด์!
๊ทธ๋์ ํ์ํ ๊ฒ์ด ๋ฐ๋ก MMU (Memory Management Unit)์ ๋๋ค.
MMU๋ ์ปดํจํฐ์ ๋ค์ด ์๋ ํ๋์จ์ด ์ฅ์น๋ก,
โ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ "๊ฐ์ ์ฃผ์"๋ฅผ ์ค์ "๋ฌผ๋ฆฌ ์ฃผ์"๋ก ๋ณํํด์ฃผ๋ ์ฅ์น์ ๋๋ค.
์ถ์ฒ : https://velog.io/@tycode4/%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC
์ฐ๋ฆฌ๊ฐ ๋ณดํต ์๊ณ ์๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋:
"MMU๊ฐ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋ ์์คํ "
...์ด ์ ๋๋ก ์๊ณ ์์ง๋ง, ์ฌ์ค ๊ทธ ๊ธฐ๋ฅ์ ์์์ผ ๋ฟ์ด๊ณ , ์ง์ง ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ํจ์ฌ ๋ ๋๋ดํ ์ฐฉ๊ฐ(!)์ ๋ง๋ค์ด๋ด์.
๐ง ํ๋ก๊ทธ๋จ์ "๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ"์ ๋ชจ๋ฅธ๋ค?
์ด์์ฒด์ ๋ ์ด๋ ๊ฒ ์์
๋๋ค:
โ๊ทธ๋, ๋ค๊ฐ ํ์ํ ๋งํผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ์จ๋ ๋ผ~ ๋ด๊ฐ ๋ค์์ ์์์ ํด์ค๊ฒ!โ
์ค์ ๋ก๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํด๋ ํ๋ก๊ทธ๋จ์ด ๋๋ผ์ง ์๋๋ก, ํ์ด์ง ํดํธ(page fault)์ ํจ๊ป ์๊ตฌ๋ถ ํ์ด์ง(demand paging) ๊ธฐ๋ฒ์ด ์๋ํฉ๋๋ค.
์ฆ, ํ๋ก๊ทธ๋จ์ ์์ ์ด ๋ง์น ๋ ๋ฆฝ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋๋ผ๊ฒ ๋ง๋ค์ด ์ฃผ๋ ์ฅ์น์ฃ .
์ฉ์ด | ์ค๋ช |
---|---|
๊ฐ์ ์ฃผ์ | ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ์ฃผ์. ๊ฒ๋ณด๊ธฐ์ฉ |
๋ฌผ๋ฆฌ ์ฃผ์ | ์ค์ ๋ฉ๋ชจ๋ฆฌ(RAM) ์์ ์์น |
MMU | ๊ฐ์ ์ฃผ์ โ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋ ์ฅ์น |
๐ ์ด ๊ณผ์ ๋๋ถ์ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ์๋ก ๋ ๋ฆฝ๋ ๊ณต๊ฐ์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋์ํ ์ ์์ด์!
MMU๋ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋จ์ํ 1:1 ๋งคํํ์ง ์์ต๋๋ค.
๋์ , ํ์ด์ง(Page)๋ผ๋ ๋จ์๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ์ฃ .
ํ๋ก๊ทธ๋จ์ด ์ง์ง๋ก ํ์ํ ํ์ด์ง๋ง ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์.
๋๋จธ์ง๋ ์์ง ๋ฉ๋ชจ๋ฆฌ์ ์์ด์. ํ์ํ ๋ ๊ทธ๋๊ทธ๋ ๋ถ๋ฌ์ต๋๋ค.
๋ง์น ๋ทํ๋ฆญ์ค์์ ๋ณด๊ณ ์ถ์ ์ฅ๋ฉด๋ง ์คํธ๋ฆฌ๋ฐํ๋ ๊ฒ๊ณผ ๊ฐ์์.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ "๊ฐ์ ์ฃผ์(Virtual Address)"๋ฅผ ์ฌ์ฉํด์, ๋ฌผ๋ฆฌ ์ฃผ์(Physical Address)๋ก ๊ฐ์ ์ ๊ทผํ๊ฒ ๋ง๋๋ ๊ธฐ์ ์ ๋๋ค.
CPU๋ ๋ฌด์กฐ๊ฑด ๊ฐ์๋ฉ๋ชจ๋ฆฌ๋ง์ ์ฐธ์กฐํด๋ฌ๋ผ๊ณ ์์ฒญํ๊ณ , ๊ทธ ๊ฐ์๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ์ค์ ์ด๋ ๋ฌผ๋ฆฌ ์ฃผ์์ ์๋์ง MMU๊ฐ ๋ณํ ์์ผ์ฃผ๊ณ , ๊ทธ ํด๋น ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ์ ํ์ฌ ๊ทธ ํด๋น ๋ฐ์ดํฐ๋ฅผ CPU์ ์ ๋ฌํฉ๋๋ค.
๊ฐ์ ์ฃผ์๋ ์ฐ์์ ์ด์ง๋ง, ๋ฌผ๋ฆฌ ์ฃผ์๋ ๋ถ์ฐ์์ผ ์ ์์ โ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ ๋ฌธ์ ๋ฐฉ์ง!
์ด๋ก ์ธํด ํ์ด์ง ๊ธฐ๋ฒ์ด ์๊ฒจ๋จ ๋ ์ฝ์ด๋ณด๊ธฐ
ํ๋ก๊ทธ๋จ ์ ์ฅ์์๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฐ์์ ์ธ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์์ ์์น๋ ๊ตณ์ด ์ฐ์์ ์ผ ํ์๊ฐ ์์ต๋๋ค.
์ฌ์ง์ด ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ค์ ํ๋ก๊ทธ๋จ์ด ์์นํ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๋ฐ๋ ์๋ ์์ด์.
๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋จ๋ค์ด ์๋ก ํ๋ ฅํ๋ ๊ฒฝ์ฐ์๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ค ์ผ๋ถ๊ฐ ๊ฐ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์๋ ์์ด์.
์ด์ ํ์ด์ง ํ ์ด๋ธ์ ๋ด์ฉ์ด ํ๋ก๊ทธ๋จ ๋ฌธ๋งฅ์ ์ผ๋ถ๋ถ์ด ๋๋ค๋ ์ฌ์ค์ ์ ์ํ๊ณ ๋ณด๋ฉด, ํ์ด์ง ํ ์ด๋ธ์ ๊ทธ๋ฅ ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ถ๋ถ์ด ๋ฉ๋๋ค.
๊ฐ์ ์ฃผ์: A15~A0
(์ด 16๋นํธ)
A15~A8
) โ ํ์ด์ง ๋ฒํธ (256๊ฐ ํ์ด์ง)A7~A0
) โ ํ์ด์ง ์์ ์คํ์
ํ์ด์ง ํ ์ด๋ธ:
๊ฐ์ ํ์ด์ง ๋ฒํธ | ๋งคํ๋ ๋ฌผ๋ฆฌ ํ์ด์ง ๋ฒํธ |
---|---|
0 | 8 |
1 | 5 |
... | ... |
โ ์๋ฅผ ๋ค์ด, ๊ฐ์ ์ฃผ์ 0x01A2
๋:
0x05A2
๋ก ๋ณํ๋จMMU๊ฐ ์๋ค๋ฉด?
MMU๊ฐ ์๋ค๋ฉด?
์ด์์ฒด์ ๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฝ ์ฐผ์ ๋ ์ด๋ ๊ฒ ์ฒ๋ฆฌํด์:
๋์ | ์ค๋ช |
---|---|
๐ค ์ค์ ์์ | ์ฌ์ฉํ์ง ์๋ ํ์ด์ง๋ฅผ ๋์คํฌ๋ก ์ฎ๊น (์๋ ๋๋ฆผ) |
โก ์ค์ ์ธ | ํ๋ก๊ทธ๋จ์ด ๊ทธ ํ์ด์ง๋ฅผ ๋ค์ ํ์๋ก ํ ๋, ๋์คํฌ์์ ๋ค์ ๋ถ๋ฌ์ด |
์ด ๊ณผ์ ์ ํตํด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ค์ ๋ณด๋ค ๋ ์ปค ๋ณด์ด๊ฒ ๋ง๋ค ์ ์์ด์. ์ด๊ฒ์ด ๋ฐ๋ก ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ํต์ฌ ๋ง๋ฒ์ ๋๋ค.
0x2000
์ฃผ์์ ์ ๊ทผํ๋ ค ํจ0x2000
์ด ํฌํจ๋ ํ์ด์ง๋ฅผ ์ค์ ์ธ์๊ตฌ๋ถ ํ์ด์ง์ โํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ง ์ฆ์ ๊ฐ์ ธ์ค๊ณ , ์ ์ฐ๋ ๋ฉ๋ชจ๋ฆฌ๋ ๋์คํฌ๋ก ๋ณด๋ด๋โ ์ค๋งํธํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ด์ ๋ฐฉ์์ ๋๋ค.
์ด ๊ณผ์ ์ '์๊ตฌ ํ์ด์ง(Demand Paging)'์ด๋ผ๊ณ ํฉ๋๋ค. OS๋ ํ์ด์ง ์ ๊ทผ ํจํด์ ์ถ์ ํด ์ด๋ค ํ์ด์ง๋ฅผ ์ค์ํ ์ง ๊ฒฐ์ ํฉ๋๋ค. ๋ํ์ ์ผ๋ก LRU(Least Recently Used) ์๊ณ ๋ฆฌ์ฆ์ด ์ฌ์ฉ๋ฉ๋๋ค.
"์์ฃผ ์ฐ๋ ๊ฑด ๋์ฅ๊ณ ์, ๋ ์ฐ๋ ๊ฑด ์ฐฝ๊ณ ์. ๊ทธ๋ฐ๋ฐ ์ฐฝ๊ณ ์์ ๊บผ๋ผ ๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค!"
ํญ๋ชฉ | MMU | ์ธ๋ฑ์ค ๋ ์ง์คํฐ |
---|---|---|
๊ธฐ๋ฅ | ๊ฐ์ โ ๋ฌผ๋ฆฌ ์ฃผ์ ๋ณํ | ๋์ ์ฃผ์ ๊ณ์ฐ (์คํ์ ๊ณ์ฐ์ฉ) |
๋ฒ์ | ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ | ์ ํ์ (์ผ๋ถ ์ฃผ์์๋ง ์ ์ฉ) |
๋ณดํธ ๊ธฐ๋ฅ | ์์ (๋ณด์, ๊ถํ ๋ฑ) | ์์ |
ํ๋ก๊ทธ๋จ ๋ถ๋ฆฌ | ๊ฐ๋ฅ | ๋ถ๊ฐ๋ฅ |
MMU๋ ๋จ์ํ ์ฃผ์ ๊ณ์ฐ๊ธฐ๊ฐ ์๋๋ผ, ๋ณด์ยท์์ ์ฑยท๋ค์ค ํ๋ก๊ทธ๋จ ์คํ์ ํต์ฌ ์ฅ์น์ ๋๋ค.
"๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ์ํฉ์์๋ ์ค์ํ์ ํตํด์๋ผ๋ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ๊ฒ ๋ซ๋ค."
์์ฝ: ์ฑ๋ฅ๋ณด๋ค ๊ฐ์ฉ์ฑ(Availability)์ด ์ค์ํ ์ํฉ์์๋ ์ค์ํ์ด ํฉ๋ฆฌ์ ์ด์์.
"Kafka ๊ฐ์ ๊ณ ์ฒ๋ฆฌ๋ ์์คํ ์์๋ (๊ฑฐ์) ๋ฌด์กฐ๊ฑด ์ค์ํ์ ๋ง์์ผ ํ๋ค."
โ ์นดํ์นด ํต์ฌ ๊ฐ์ด๋ p.40
๊ณ ์ฑ๋ฅ ์์คํ ์์๋ ์ํฉ์ด ์์ ํ ๋ฌ๋ผ์. ์ฑ๋ฅ์ด ๋จ์ด์ง๋ฉด ๋น์ฆ๋์ค ์์ฒด๊ฐ ํ๊ฒฉ์ ์ ์ ์ ์๊ธฐ ๋๋ฌธ์ด์์.
์ด์ | ์ค๋ช |
---|---|
๐ฅ ์ฑ๋ฅ ์ ํ | ์ค์์ ๋์คํฌ I/O๋ฅผ ์ ๋ฐํด์. RAM๋ณด๋ค ์์ฒ ๋ฐฐ ๋๋ ค์. |
๐ ๋ ์ดํด์ ์ฆ๊ฐ | Kafka, DB, ๊ฒ์ ์๋ฒ์ฒ๋ผ ์ค์๊ฐ์ฑ์ด ์ค์ํ ์์คํ ์์ ์น๋ช ์ ์ด์์. |
๐ง ์์ธก ๋ถ๊ฐ | ์ปค๋์ด ์ด๋ค ํ์ด์ง๋ฅผ ์ค์ํ ์ง ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์, ์์ธก์ด ์ด๋ ค์์. |
๐ ์ฒ๋ฆฌ๋ ๊ฐ์ | CPU๋ ํ๊ฐํ๋ฐ ๋ฉ๋ชจ๋ฆฌ I/O ๋๋ฌธ์ ์ ์ฒด ์๋๊ฐ ๋ฆ์ถฐ์ ธ์. |
vm.swappiness
๊ฐ์ 10 ์ดํ๋ก ์ค์ด๊ฑฐ๋ ์์ 0์ผ๋ก ์ค์
sudo sysctl -w vm.swappiness=10
Kafka, Elasticsearch, Redis ๋ฑ์ ์ค์ ๋นํ์ฑํ๊ฐ ๊ถ์ฅ
์ปจํ
์ด๋์์๋ --memory-swappiness=0
์ต์
์ฌ์ฉ
ํญ๋ชฉ | ์ผ๋ฐ PC (๊ต๊ณผ์ ๊ด์ ) | Kafka ๊ฐ์ ๊ณ ์ฑ๋ฅ ์๋ฒ (์ค๋ฌด ๊ด์ ) |
---|---|---|
๋ชฉํ | ์คํ ๊ฐ๋ฅํ ์์คํ ์ ์ง | ์ง์ฐ ์ต์ํ, ์ฒ๋ฆฌ๋ ๊ทน๋ํ |
์ค์ํ ํ์ฉ | ํ์ฉ (ํ์์ ) | โ ์ต๋ํ ๋ฐฉ์ง |
ํ์ด์ง ๊ต์ฒด | LRU ๋ฑ ์ฌ์ฉ | ์ค์ํ ์์ฒด๋ฅผ ์ ํ๋๋ก ์ธํ |
๋ฆฌ์์ค ๋ถ์กฑ ์ | ๋๋ ค์ ธ๋ ๋์ ์ ์ง | ์ฑ๋ฅ ์ ํ๋ SLA ์๋ฐ์ผ๋ก ์น๋ช ์ |
๊ต๊ณผ์์์ ๋งํ๋ ์ค์ํ์ โ์ตํ์ ์์ ์ฅ์นโ์ง๋ง, ์ค๋ฌด์์๋ โ์ ๋ ํผํด์ผ ํ ์ฑ๋ฅ ์ง์ฅโ์ ๋๋ค.
ํค์๋ | ์ค๋ช |
---|---|
MMU | ๊ฐ์ ์ฃผ์ โ ๋ฌผ๋ฆฌ ์ฃผ์ ๋ณํ ํ๋์จ์ด |
ํ์ด์ง | ์ผ์ ๋จ์๋ก ์ชผ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก |
ํ์ด์ง ํ ์ด๋ธ | ๊ฐ์ โ ๋ฌผ๋ฆฌ ์ฃผ์ ๋งคํ ์ ๋ณด ์ ์ฅ ํ ์ด๋ธ |
ํ์ด์ง ํดํธ | ์๋ ๊ฐ์ ์ฃผ์ ์ ๊ทผ ์ ๋ฐ์ํ๋ ์์ธ |
์ ์ด ๋นํธ | ์คํ๋ถ๊ฐ, ์ฝ๊ธฐ์ ์ฉ ๋ฑ ์ ๊ทผ ๊ถํ ์ ์ด |
ํ๋ก๊ทธ๋จ ๋ถ๋ฆฌ | ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ์๋ก ๊ฒฉ๋ฆฌ |
"ํ๋ ์ปดํจํฐ์์ MMU ์๋ ์์คํ ์ ์์ํ ์ ์์ต๋๋ค.
ํ๋ก๊ทธ๋จ์ด ์์ ํ๊ฒ, ๊ทธ๋ฆฌ๊ณ ์๋ก ๊ฐ์ญ ์์ด ์คํ๋ ์ ์๋๋ก ๋๋ ์กฐ๋ ฅ์.
๊ทธ๊ฒ ๋ฐ๋ก MMU์ ๋๋ค!"
"๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ง์น ๊ฐ ๊ฐ์ ์ด ์๊ธฐ ์ง ์ฃผ์ ์ฒด๊ณ๋ฅผ ์ฐ๋ ๊ฒ์ฒ๋ผ, ๋ค๋ฅธ ์ง ์ฃผ์์ ๊ฒน์น์ง ์๊ฒ ๋ง๋ค์ด์ฃผ๋ ์ฅ์น์ ๋๋ค."