์๋ ํ์ธ์ ์ค๋์ VM์ ํจ์จ์ ์ผ๋ก ์ฐ๊ธฐ ์ํ ๊ณผ์ ์ค ํ๋์ธ NUMA์ ๋ํด ์ ๋ฆฌ๋ฅผ ํด๋ณด์์ต๋๋ค.
NUMA๋?
NUMA๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ ์ค ํ๋๋ก Non-Uniform Memory Access์ ์ค์๋ง์ ๋๋ค. ๋จ์ด์ ๋ป์ ์ง์ญํด๋ณด์๋ฉด ๋น๋์นญ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด๋ผ๊ณ ํํํ ์ ์๋๋ฐ์, ๋น๋์นญ์ ๋ป์ CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌผ๋ฆฌ์ ์ธ ์์น์ ๋ฐ๋ผ ์ ๊ทผ ์๋๊ฐ ๋ค๋ฅด๋ค๋ผ๋ ๊ฑธ ์๋ฏธํฉ๋๋ค.
CPU๊ฐ ์์ ์ ๊ทธ๋ฃน์ ํ ๋น๋ผ์๋ ๋ก์ปฌ ๋ฉ๋ชจ๋ฆฌ์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๊ณ , ๋ณธ์ธ์๊ฒ ํ ๋น๋์ง ์์ ๋ค๋ฅธ CPU์ ๋ฉ๋ชจ๋ฆฌ(์๊ฒฉ ๋ฉ๋ชจ๋ฆฌ)์ ์ ๊ทผํ ๋๋ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ๋น๋์นญ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
NUMA์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
SMP
NUMA๊ฐ ๋ฑ์ฅํ๊ธฐ ์ ์๋ SMP(Symmetric Multi-Processing) ๋ผ๋ ์ํคํ ์ฒ๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ์์ต๋๋ค.
SMP(๋์นญํ ๋ฉํฐํ๋ก์ธ์ฑ) ์์คํ ์์๋ ์ฌ๋ฌ CPU๊ฐ ๋จ์ผ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ค๋ฅผ ํตํด ๊ณต์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํฉ๋๋ค. ์ด ๊ตฌ์กฐ์์ ๋ชจ๋ CPU๋ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ค ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ฑ๋์ ํตํด ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์, ํ ๋ฒ์ ํ CPU๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ์ค์ผ์ผ๋ง ๋ฌธ์ : CPU๊ฐ ๋ง์์ง์๋ก ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ค๋ ์๋๊ฐ ์ฆ๊ฐํ๊ฒ ๋๊ณ ์ด์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ค์ ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. ์ด ๋ณ๋ชฉ ํ์์ CPU๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ธฐ ์ํด ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง๋ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ์ฌ ๊ฒฐ๊ตญ ์ ์ฒด ์์คํ ์ ์ฑ๋ฅ ์ ํ๋ก ์ด์ด์ง๋๋ค. ์ฆ, CPU๊ฐ ๋ง์์ง๋ฉด ์ฑ๋ฅ์ด ์ ํ์ ์ผ๋ก ์ฆ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๊ฒฝ์(Race Condition)์ผ๋ก ์ธํด ์ฑ๋ฅ์ด ๊ธ๊ฒฉํ ์ ํ๋ ์ ์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ ์ ํ: SMP ๊ตฌ์กฐ๋ ๋จ์ผ ๋ฒ์ค๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ทผํ๋๋ฐ ์ด ๋ฒ์ค์ ๋์ญํญ ์ ํ์ด ๊ฑธ๋ ค์์ด ๋ณ๋ชฉ์ด ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
NUMA๊ฐ ๋ณ๋ชฉ์ ํด๊ฒฐํด์ค๊ฒ!
NUMA๋ CPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฌ๋ฌ ๋ ธ๋๋ก ๋๋๊ณ , ๊ฐ ๋ ธ๋๊ฐ ์์ ์๊ฒ ๊ฐ๊น์ด(=๋ณธ์ธ์๊ฒ ํ ๋น๋) ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋๋ก ์ค๊ณ๋ ์ํคํ ์ฒ์ ๋๋ค.
์ฆ, CPU๊ฐ ์์ ์๊ฒ ์ฐ๊ฒฐ๋ ๋ก์ปฌ ๋ฉ๋ชจ๋ฆฌ์๋ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๊ณ , ๋ค๋ฅธ ๋ ธ๋์ ์๊ฒฉ ๋ฉ๋ชจ๋ฆฌ์๋ ๋๋ฆฌ๊ฒ ์ ๊ทผํ๋ ๋ฐฉ์์ ๋๋ค.
- ๋ก์ปฌ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ๋น ๋ฅด๊ฒ!: NUMA์์ ๊ฐ CPU๋ ์์ ์ด ์ํ NUMA ๋ ธ๋์ ๋ก์ปฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์ ์ ์ผ๋ก ์ ๊ทผํ์ฌ CPU๊ฐ ๋ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์ต๋๋ค.
- ํ์ฅ์ฑ ํฅ์: NUMA๋ ๋ฉ๋ชจ๋ฆฌ์ CPU๋ฅผ ์ฌ๋ฌ ๋ ธ๋๋ก ๋ถํ ํ์ฌ ๋ณ๋ชฉ ํ์์ ์ค์ด๊ณ ๋ง์ ์์ CPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฅํด๋ ์ฑ๋ฅ์ด ๊ธ๊ฒฉํ ์ ํ๋์ง ์๋๋ก ํฉ๋๋ค.
NUMA ๋์ ์๋ฆฌ
NUMA๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๊ฐ์ ๋น๋์นญ์ ์ผ๋ก ์ค์ ํ๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ํตํด CPU๊ฐ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ ๋ก์ปฌ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ์ฌ ๋ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๊ณ , ์๊ฒฉ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ํ ๋๋ง ์ ๊ทผํ์ฌ ์ต์ ํํฉ๋๋ค.
- NUMA ๋ ธ๋: NUMA ์์คํ ์์ CPU์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ ธ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ฐ ๋ ธ๋์๋ ํ ๊ฐ ์ด์์ CPU์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๋ฉฐ CPU๋ ์์ ์ ๋ ธ๋ ๋ด์ ๋ฉ๋ชจ๋ฆฌ์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ๋ก์ปฌ ๋ฉ๋ชจ๋ฆฌ์ ์๊ฒฉ ๋ฉ๋ชจ๋ฆฌ: CPU๊ฐ ์ํ ๋ ธ๋์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ก์ปฌ ๋ฉ๋ชจ๋ฆฌ, ๋ค๋ฅธ ๋ ธ๋์ ๋ฉ๋ชจ๋ฆฌ๋ ์๊ฒฉ ๋ฉ๋ชจ๋ฆฌ๋ผ๊ณ ํฉ๋๋ค.
- NUMA ์ค์ผ์ค๋ง: ์ด์์ฒด์ ๋ ๊ฐ์ํ ํ๊ฒฝ์์๋ ์ํฌ๋ก๋๋ฅผ ๊ฐ NUMA ๋ ธ๋์ ๋ง๊ฒ ๋ฐฐ์นํ์ฌ ์ฑ๋ฅ์ ๋ ๋์ด ์ด๋์ด๋ผ ์ ์์ต๋๋ค. VM์ NUMA ๋ ธ๋์ ํ ๋นํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๋๊ธฐ ์๊ฐ์ ์ต์ํํ๋ ์ ๋ต์ ํ์ฉํ ์ ์์ต๋๋ค.
์ ๋ฆฌํด๋ณด์๋ฉด NUMA๋ SMP ์์คํ ์ ํ์ฅ์ฑ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํ ์ํคํ ์ฒ๋ก ๋ฑ์ฅํ์ผ๋ฉฐ, ์์์ ํจ์จ์ ์ผ๋ก ์ธ ์ ์๋ ํ๊ฒฝ์์ ์ ์ฉํ๊ฒ ์ฐ์ผ ์ ์๋ ๊ธฐ์ ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด OpenStack์์๋ ์ด๋ป๊ฒ NUMA๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค๋ฅผ ํจ์จ์ ์ผ๋ก ์ฐ๋์ง์ ๋ํด์๋ ๋ค์ ๊ธ์์ ์ด์ด์ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค.
๋์์ ๋ฐ์ ๊ธ
https://neohtux.tistory.com/11
https://bluemoon-1st.tistory.com/85
https://gamedoridori.tistory.com/202
'Infra > OpenStack' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[IaC] OpenTofu with GitLab #2 ์คํ์คํ ์ธ์คํด์ค ํ์ดํ๋ผ์ธ ์ค๊ณ (1) | 2024.11.21 |
---|---|
[IaC] OpenTofu with GitLab #1 (1) | 2024.10.07 |
[IaC] Terraform import๋ฅผ ํ์ฉํ openstack ๋ฆฌ์์ค tfstate ๋ง๋ค๊ธฐ (5) | 2024.10.07 |
ํ์ดํผ๋ฐ์ด์ ๊ฐ์ํ ๊ธฐ์ (1) | 2024.03.08 |