๋ฆฌ๋
์ค ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒํ๊ธฐ ์ํด์ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ณดํต ์ด๋ค ๋ช
๋ น์ด๋ฅผ ๋ง์ด ์ฌ์ฉํ๋์ง ์ฐพ์๋ดค๋ค.
(์์์ ๋์ค๋ ์์น๋ค์ ์์๋ก ๋ฃ์ ์ซ์๋ผ ํฉ๊ณ๊ฐ ์ ๋ง๋๋ค)
free
๋ช
๋ น์ด
man free
๋ช
๋ น์ด๋ก free
๋ช
๋ น์ด๋ฅผ ํ์ธํด๋ณด๋ฉด, ๋ค์๊ณผ ๊ฐ์ ์ค๋ช
์ด ๋์จ๋ค.
displays the total amount of free and used physical and swap memory in the system, as well as the buffers and caches used by the kernel. The information is gathered by parsing /proc/meminfo
๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ free/used ๊ด๋ จ๋ ๋ฉ๋ชจ๋ฆฌ ์์ ๋ณด์ฌ์ค๋ค. ๋ํ ์ปค๋์ ์ํด์ ์ฌ์ฉ๋ buffers์ cache์ ์๋ ๋ณด์ฌ์ค๋ค. ํด๋น ์ ๋ณด๋ /proc/meminfo ํ์ผ์ ๊ธฐ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ์์งํ์ฌ ๋ณด์ฌ์ค๋ค.
์ค์ ๋ก /proc
๊ฒฝ๋ก๋ก ์ด๋ํด์ meminfo
ํ์ผ์ ์ด์ด๋ณด๋ฉด ์๋์ ๊ฐ์ ๋ฐ์ดํฐ๋ค์ด ๋์จ๋ค.
์ฌ๋ด์ด์ง๋ง, /proc
๊ฒฝ๋ก๋ ๋์คํฌ์ ์ค์ ๋ก ์กด์ฌํ์ง ์๊ณ ์ปค๋๋จ์์ ๋ง๋ค์ด๋ธ๋ค๊ณ ํ๋ค.(์ฐธ๊ณ )
์ด๊ฒ ์ ํํ ๋ญ ์๋ฏธํ๋ ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค. ์ฌํผ ์๋ ์ ๋ณด๋ ์ปค๋๋จ์์ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ผ๊ณ ์ดํดํ๊ธฐ๋ก ํ๋ค.
# /proc/meminfo ํ์ผ
MemTotal: 8000000 kB
MemFree: 3000000 kB
MemAvailable: 6000000 kB
Buffers: 160000 kB
Cached: 1900000 kB
์ถ๊ฐ๋ก ์ค์ ๋ฉ๋ชจ๋ฆฌ๋, ์ฌ์ค์ ํ๋๋์คํฌ ์ฉ๋์ธ๋ฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ ๋์ด๋ค ์ฐ๋ ํ๋๋์คํฌ ์ฉ๋์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
ํ๋ ๋์คํฌ์ ์ฉ๋๊น์ง ๋์ด๋ค ์ด๋ค๋ ๊ฑด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฑฐ์ ๋ค ์ฐ๊ณ ์๋ค๋ ๋ป์ด๊ธฐ ๋๋ฌธ์,
๋ญ๊ฐ ํ๋ฒ์ ์ข ์์ธํ ๋ค์ฌ๋ค ๋ด์ผ ํ๋ค๋ ๋ป์ด๋ค.
ํ์ง๋ง ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ค ์ฐ๊ณ ๋์๋ง swap ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ ์๋๋ผ๊ณ ํ๋ค.
๊ฒฐ๊ณผ ํด์ํ๊ธฐ
$ free
total used free shared buff/cache available
Mem: 8000000 4810000 90000 900 3100000 3180000
Swap: 4000000 0 4000000
$ free -h #human-readable ์ต์
(-h)์ ์ฃผ๋ฉด ๋จ์๊น์ง ์ ํ์ํด์ค๋ค
total used free shared buff/cache available
Mem: 7.6G 4.5G 90M 900K 3.0G 3.0G
Swap: 4.0G 0B 4.0G
free
๋ช
๋ น์ด์ ๊ฒฐ๊ณผ๋ฌผ์ ์ง๊ด์ ์ด๋ค.
๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ์ธํ ์ ์๋ค. Mem
์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ,Swap
์ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋ค.
total
: ์ด ํฉ๊ณused
: ํ์ฌ ์ฌ์ฉ์ค์ธ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐused
=total
-free
-buff/cache
- (ex)
Mem
์used
: 8000000 - 90000 - 3100000
free
: ์ฌ์ฉ ๊ฐ๋ฅํ ์์ฌ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ/proc/meminfo
์MemFree
/SwapFree
ํญ๋ชฉ
shared
man free
์ ๋ฐ๋ฅด๋ฉดtmpfs
์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ค (tmpfs์ ๋ํด์๋ ์๋์์ ๋ค๋ฃฌ๋ค)/proc/meminfo
์Shmem
ํญ๋ชฉkernels 2.6.32 ์ด์์ ๋ฒ์ ๋ถํฐ ์ธก์ ๊ฐ๋ฅํ๋ฉฐ, ์ธก์ ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ์๋ 0์ผ๋ก ํ๊ธฐ๋๋ค
buff/cache
: ์ปค๋์ด ์ฌ์ฉํ๋ ์บ์์์ญ์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐbuff
:/proc/meminfo
์Buffers
ํญ๋ชฉcache
: page cache + slabs์ ํฌ๊ธฐ์ด๋ฉฐ,/proc/meminfo
์Cached
์Slab
ํญ๋ชฉ์ ํฉ
available
man free
์ ๋ด์ฉ์ ์ฝ์ด๋ณด๋ ๊ฒ ์ข๋คEstimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the cache or free fields, this field takes into account page cache and also that not all
reclaimable memory slabs will be reclaimed due to items being in use (MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as free)์ด ๋ด์ฉ์ ๋ช ํํ ์ดํดํ๊ธฐ ์ํด์๋ ์ฐ์ page cache์ slab์ ๋ํด์ ์์์ผ ํ ๊ฒ ๊ฐ๋ค.
ํ์ง๋ง ๋๋ต์ ์ผ๋ก๋ง ์ดํดํ์๋ฉด ๋ง ๊ทธ๋๋ก ์ฌ์ฉ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ์ ์ฉ๋์ผ๋ก ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
free์ ์ด๋ค ์ฐจ์ด์ ์ด ์์๊น ํ๋๋ฐ, free๋ ํ์ฌ ์ง์ง ๋๊ณ ์๋(์๋ฌด๊ฒ๋ ํ์ง ์๋) ๋ฉ๋ชจ๋ฆฌ์ ์ฉ๋์ด๊ณ ,available์ ํ์ฌ ๋ฌด์ธ๊ฐ๋ฅผ ํ๊ณ ์๊ธฐ๋ ํ์ง๋ง ์๋ก์ด ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋์๊ฐ๊ธฐ ์์ํ ๋ ๊ทธ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํด ์ฐจ์ถ๋ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ผ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฐจ์ถ๋ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ ๋๊ฐ buffer/cache์ ํด๋น๋์๋ ๋ฉ๋ชจ๋ฆฌ๋ค. (ํ์ง๋ง buffer/cache์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๋ค์ด availableํ ๋ฉ๋ชจ๋ฆฌ๋ก ์นด์ดํธ๋์ง๋ ์๋๋ค)์ถ๊ฐ๋ก, free์ ์ฉ๋์ด ๋๋ฌด ์์ด๋ ๋ฌธ์ ๊ฒ ์ง๋ง ๋๋ฌด ์ปค๋ ๋ฌธ์ ๋ค. ๊ทธ๋งํผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋๊ณ ์๋ค๋ ๋ป์ด๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋นํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
tmpfs๋?
tmpfs
๋ Temporary File System์ ์ฝ์๋ค. ์ด๋ฆ ๊ทธ๋๋ก ์์ ํ์ผ์์คํ
์ด๋ฉฐ, ๊ทธ๋ง์ธ์ฆ์จ ๋์คํฌ๋ฅผ ๋ฐํ์ผ๋ก ํ๋ ์ผ๋ฐ์ ์ธ ํ์ผ ์์คํ
์ด ์๋๋ผ, ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์๋ ํ์ผ์์คํ
์ด๋ผ๋ ๋ป์ด๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ฅผ ๋ด๋ฆฌ๋ฉด tmpfs
์ ์ ์ฅ๋์ด ์๋ ๋ด์ฉ๋ค์ ๋ชจ๋ ํ๋ฐ๋๋ค.
tmpfs
์ ์์ฑ๋๋ ํ์ผ๋ค์ ์ผ๋จ ๋๋ถ๋ถ์ ๋ฆฌ๋
์ค์์ ๋ํดํธ๋ก ์ค์ ํด๋์ ๋ช๋ช ๊ฒฝ๋ก๋ค์ ์๊ธด ํ์ผ๋ค์ด๋ค. /run
๋ฑ์ ๊ฒฝ๋ก์ ์๊ธด ํ์ผ๋ค์ tmpfs
์ ์ ์ฅ๋๋ค.์ ๊ตณ์ด ๋ ๋ผ๊ฐ ์ฌ์ง๊ฐ ์๋ ๊ณณ์ ํ์ผ์ ๋ง๋๋ ๊ฑธ๊น ์ถ์๋ฐ, ์๋ง ์ ๊ทผ ์๋๊ฐ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ๊ฐ์ฅ ํฐ ์ด์ ์ผ ๋ฏ ํ๋ค.
๋ค๋ฅธ ๊ธ๋ค์ ์ฝ์ด๋ณด๋ฉด free ๋ช
๋ น์ด์ shared
์๋ ์ฃผ๋ก ํ๋ก์ธ์ค๋ค ์ฌ์ด์์ ๊ณต์ ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๊ฐ ๋ํ๋๋ค๊ณ ํ๋ค.
(๊ทผ๋ฐ ์ฌ์ค ๊ณต์ ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ผ๋ ๊ฒ ์ ํํ ๋ฌด์จ ์๋ฏธ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค.)
์ฌํผ ์กฐ๊ธ ๋ ์ ํํ ์ด์ผ๊ธฐํด์ shared
๋ tmpfs
์ ์ํด ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ผ๊ณ ๊ธฐ์ตํ๋ ๊ฒ ์ข์ ๋ณด์ธ๋ค.
์ฐธ๊ณ
'๊ธฐํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[1%์ ๋คํธ์ํฌ ์๋ฆฌ] Ch01. ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฉ์์ง๋ฅผ ๋ง๋ ๋ค (0) | 2022.04.19 |
---|---|
[๋ฆฌ๋ ์ค] csh ํ๊ธ๊นจ์ง (0) | 2022.04.14 |
[์ธํ ๋ฆฌ์ ์ด] ์ธํ ๋ฆฌ์ ์ด public static void main (0) | 2021.07.28 |
[์ธํ ๋ฆฌ์ ์ด] ์๋์ฐ ๋จ์ถํค (0) | 2021.07.28 |