[Linux] free
free ๋ช ๋ น์ด๋?
free ๋ ์์คํ ์ ๋ฉ๋ชจ๋ฆฌ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด์ ๋๋ค. ๋จ์๋ฅผ megabyte ๋ก ์ค์ ํ์ฌ ์ถ๋ ฅํ๋ผ๋ -m ์ต์ ์ ์ถ๊ฐํ๋ฉด ์๋์ ๊ฐ์ ์ถ๋ ฅ๊ฐ์ด ๋์ต๋๋ค.
์ถ๋ ฅ๊ฐ์ ์ดํด๋ณด๋ฉด total, used, free, shared, buff/cache, available ์ ๊ฐ์ ์ปฌ๋ผ์ด ์กด์ฌํฉ๋๋ค. total ๊ณผ used ๋ ๊ฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ด๋๊ณผ ์ฌ์ฉ ์ค์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ํ๋ด๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด free์ available ์ ์ฐจ์ด๋?
์ฐ์ free ๋ ์ด๋ ํ๋ก์ธ์ค๋ ์ฌ์ฉํ๊ณ ์์ง ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์๋ก ํ๋ ํ๋ก์ธ์ค์๊ฒ ๋ฐ๋ก ํ ๋นํด์ค ์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค. ์ด์ ๋ฐํด available ์ ํ๋ก์ธ์ค์๊ฒ ์ค์ง์ ์ผ๋ก ํ ๋น์ด ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค. ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉ์ค์ผ ์๋ ์์ง๋ง ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํ์๋ก ํ๋ฉด, ๊ทธ ํ๋ก์ธ์ค์๊ฒ ๋๊ฒจ์ค ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ฏธํฉ๋๋ค.
์ ์ด๋ฐ ์ฐจ์ด๊ฐ ๋ฐ์ํ ๊น?
๊ทธ ์ด์ ๋ ๋ฐ๋ก buff์ cache ๋๋ฌธ์ ๋๋ค. ์ฌ๊ธฐ์ buff ๋ ๋ธ๋ก ๋๋ฐ์ด์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ธ๋ก ์์ฒด์ ๋ํ ์บ์, cache ๋ I/O ์ฑ๋ฅ ํฅ์์ ์ํด ์ฌ์ฉํ๋ ํ์ด์ง ์บ์๋ฅผ ์๋ฏธํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ A์ B๊ฐ ๋ธ๋ก ๋๋ฐ์ด์ค๋ก๋ถํฐ test.txt ๋ผ๋ ํ ํ์ผ์ open ํ๋ ค๊ณ ํ ๋, ๊ฐ๊ฐ ๋ธ๋ก ๋๋ฐ์ด์ค๋ก๋ถํฐ ์ฝ๊ฒ ๋๋ฉด I/O ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ธ๋ก ๋๋ฐ์ด์ค ์ฌ์ด์ ํ์ด์ง ์บ์๋ฅผ ์์นํ์ฌ, ํ์ด์ง ์บ์๋ก๋ถํฐ ์ํ๋ ํ์ผ์ ์ฝ์ต๋๋ค. ๋ง์ฝ ํ์ด์ง ์บ์์ ์ฝ์ผ๋ ค๋ ํ์ผ์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด, ๋ธ๋ก ๋๋ฐ์ด์ค๋ก๋ถํฐ ํ์ผ์ ์ฝ์ด์ค๊ณ ํ์ด์ง ์บ์์ ์ ์ฅํฉ๋๋ค. ํ์ด์ง ์บ์๋ฅผ ํตํด ๋ธ๋ก ๋๋ฐ์ด์ค์ I/O ์ฑ๋ฅ์ ์ ์งํ ์ ์์ต๋๋ค. ํ์ด์ง ์บ์, ์ฆ ๋ฉ๋ชจ๋ฆฌ๋ก๋ถํฐ ํ์ผ์ ๋ด์ฉ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ I/O๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
buff ์ cache ๋ I/O ์ฑ๋ฅ ํฅ์์ ์ํด์ ์กด์ฌํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์๋ก ํ๋ค๋ฉด, I/O ์ฑ๋ฅ ์ ํ๋ฅผ ๊ฐ๋ดํ๋ฉฐ buff/cache ์์ญ์ ํด์ ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉํ ์ ์๋ ์์ญ์ผ๋ก ๋ฐ๊ฟ ์ ์์ต๋๋ค. ์ฆ ์๋์ ๊ฐ์ ์์์ด ์ ์๋ฉ๋๋ค. ์ ํํ ์์ ์๋์ง๋ง, ๋์ถฉ ์ด ์์ ๋ฐ๋ผ๊ฐ๋๋ค.
Available = free + buff/cache
swap
๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ์ํฉ์์ ์ฌ์ฉํ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ swap ์์ญ์ด๋ผ๊ณ ํฉ๋๋ค. ์ฃผ๋ก ๋ธ๋ก ๋๋ฐ์ด์ค์ ์ผ๋ถ ์์ญ์ ์ฌ์ฉํฉ๋๋ค.
ํ๋ก์ธ์ค #2์ ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํ๊ธฐ ์ํด์, ํ๋ก์ธ์ค #1์ด ์ฌ์ฉํ๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ 0 ์์ญ์ swap out ํฉ๋๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ 0 ์์ญ์ swap ์์ญ์ผ๋ก ๋์ด๊ฐ๊ฒ ๋๊ณ , ๋ฉ๋ชจ๋ฆฌ 0 ์์ญ์ ์๋ ์์น๋ ๋น ์ง์ด ๋ฉ๋๋ค. ์ปค๋์ ์ด ๋น ์ง์ ํ๋ก์ธ์ค #2 ์๊ฒ ํ ๋นํฉ๋๋ค.
ํ๋ก์ธ์ค #1์ด ๋ฉ๋ชจ๋ฆฌ 0 ์์ญ์ ์ฐธ์กฐํ๊ธธ ์ํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
0๋ฒ ์์ญ์ ์๋ ํ๋ก์ธ์ค #2 ๋ฉ๋ชจ๋ฆฌ๋ฅผ swap ์์ญ์ผ๋ก swap out ํ๊ณ , swap ์์ญ์ ์๋ ํ๋ก์ธ์ค #1 0๋ฒ ์์ญ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ค์ swap in ํด์ต๋๋ค. 0๋ฒ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์ง๋ง, swap ์์ญ์ ์๋ 0๋ฒ ๋ฉ๋ชจ๋ฆฌ๋ ์ญ์ ํ์ง ์์ต๋๋ค. ์ด๋ฐ ๋ถ๋ถ์ swap cached ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๋์ค์ swap in, swap out ์ด ๋ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ์์ญ์ ์บ์ฑํด๋๋ ๊ฒ์ ๋๋ค.
์ด์ ๊ฐ์ด swap ์์ญ์ด ์ฌ์ฉ๋๋ฉด ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ์ I/O ๊ฐ ๋น๋ฒํ๊ฒ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ๋ค์๊ณผ ๊ฐ์ ๊ณ ๋ฏผ์ ๋น ์ง๊ฒ ๋ฉ๋๋ค.
์ฑ๋ฅ์ด ๋จ์ด์ง๋๋ผ๋ OOM Killer ์ ์ํด ์ฃฝ๋๊ฑธ ๋ง์๊น vs ์ฑ๋ฅ์ด ๋จ์ด์ง ๋ฐ์๋ OOM Killer ์ ์ํด ์ฃฝ๋๊ฒ ๋์๊น
์์ฆ์ ํธ๋ ๋๋ swap ์์ญ์ ๋นํ์ฑํ, ์ฆ ์ฑ๋ฅ์ ์งํค๊ณ OOM Killer ์ ์ํด ํ๋ก์ธ์ค๊ฐ ์ฃฝ๋ ๊ฒ์ ์ ํธํ๋ ํธ์ ๋๋ค. EC2 ๋ ์ด๋ฌํ ํธ๋ ๋์ ๋ง์ถฐ์ ๊ธฐ๋ณธ๊ฐ์ด swap off ์ ๋๋ค. ์ด๋ฌํ ์ ํ์ ์ด์ ๋ ์ปจํ ์ด๋ ํ๊ฒฝ์ ์ฃผ๋ก ์ฌ์ฉํ๋ ์์ฆ ํธ๋ ๋์ ์ํ ๊ฒ์ ๋๋ค. OOM Killer ์ ์ํด ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๋๋ผ๋ ์ปจํ ์ด๋๋ฅผ ๋น ๋ฅด๊ฒ ๋ค์ ๋์ธ ์ ์๊ธฐ ๋๋ฌธ์ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์์๋ ๋๋ถ๋ถ swap ์์ญ์ ๋นํ์ฑํ ํฉ๋๋ค.
API ์๋ฒ์ ๊ฐ์ด 1~2์ด ์ ๋ ๋ค์ด๋๋๊ฑด ๊ทธ๋ ๊ฒ ํฌ๊ฒ ํฌ๋ฆฌํฐ์ปฌํ์ง ์์ต๋๋ค. ๋ค๋ง DB ์๋ฒ์ ๊ฐ์ ๊ฒฝ์ฐ์๋ EC2 + Swap ์์ญ ์ ์ฌ์ฉํ์ฌ ๋๋ ค์ง๋๋ผ๋ ๊ณ์ํด์ ์ด์์ด ๋๋ ๊ฒ์ด ๋์ ์๋ ์์ต๋๋ค. ๋๋ ค์ง๋ค๋ฉด ๋ชจ๋ํฐ๋ง์ ํตํด SWAP ์์ญ์ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ๋ฆญ๊ณผ ๊ฐ์ ๋ฌธ์ ์ ์ ์ฐพ์๋ณผ ์ ์์ต๋๋ค.
์ ๋ฆฌ
buff/cache ๊ฐ ๋๋ค๋ฉด I/O ๊ฐ ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ค๋ ์๋ฏธ๋ค.
swap ์์ญ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๋ค๋ ์ ํธ๋ค.
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[Linux] tcpdump
[Linux] tcpdump
2023.07.31 -
[Linux] top
[Linux] top
2023.07.30 -
[Linux] Syn Flooding
[Linux] Syn Flooding
2023.07.27 -
[Linux] OOME (Out-Of-Memory Error)
[Linux] OOME (Out-Of-Memory Error)
2023.07.27