πŸ“‚ System/Linux

[Linux] SWAP μ˜μ—­ λ§Œλ“€κΈ°

dhyuck 2022. 3. 14. 22:04
λ°˜μ‘ν˜•

Swap Space(μŠ€μ™‘ μ˜μ—­)

  • λ¦¬λˆ…μŠ€μ—μ„œ μŠ€μ™‘ μ˜μ—­μ€ ν•˜λ“œλ“œλΌμ΄λΈŒμ— μžˆλŠ” λ””μŠ€ν¬ κ³΅κ°„μœΌλ‘œ RAM이 가득 μ°Όμ„λ•Œ μ‚¬μš©μ΄ λ©λ‹ˆλ‹€.
  • λ¦¬λˆ…μŠ€μ—μ„œλŠ” λ©”λͺ¨λ¦¬κ°€ 더 ν•„μš”ν•˜κ³ , RAM이 λΆ€μ‘±ν•˜λ©΄ λΉ„ν™œμ„± νŽ˜μ΄μ§€(Inactive page)κ°€ RAMμ—μ„œ SWAP μ˜μ—­μœΌλ‘œ μ΄λ™μ‹œν‚΅λ‹ˆλ‹€.
  • μŠ€μ™‘ μ˜μ—­μ€ RAM이 적은 μ‹œμŠ€ν…œμ— 도움이 될 수 μžˆμ§€λ§Œ, RAM을 λŒ€μ²΄ν•˜λŠ” κ²ƒμœΌλ‘œ κ°„μ£Όλ˜μ–΄μ„œλŠ” μ•ˆλ©λ‹ˆλ‹€.

SWAP μ˜μ—­μ„ λ§Œλ“œλŠ” 방법

  • SWAP μ˜μ—­μ„ λ§Œλ“œλŠ” 방법은 2κ°€μ§€μž…λ‹ˆλ‹€.
    • SWAP 파일 방식 : 일반적인 파일 μ‹œμŠ€ν…œμ— μ‘΄μž¬ν•˜λŠ” νŒŒμΌμ„ μŠ€μ™€ν•‘ μ˜μ—­μœΌλ‘œ μ‚¬μš©
    • SWAP νŒŒν‹°μ…˜ 방식 : νŒŒν‹°μ…˜μ„ μŠ€μ™€ν•‘ μ˜μ—­μœΌλ‘œ μ‚¬μš©

SWAP 파일 방식

  1. ν˜„μž¬ λ©”λͺ¨λ¦¬ 확인(free)

     free -h

  1. 빈 λ””μŠ€ν¬ λ§Œλ“€κΈ°(dd)

    μ•„λž˜ λ‚΄μš©μ€ μ‚¬μ΄μ¦ˆκ°€ 128M인 블둝 16개λ₯Ό λ§Œλ“€κ² λ‹€λŠ” 의미 β†’ 128M * 16 = 2GB

     sudo dd if=/dev/zero of=/swapfile bs=128M count=16

  1. κΆŒν•œ λ³€κ²½(root만 μŠ€μ™‘μ˜μ—­μ„ 읽고 μ“Έμˆ˜ μžˆλ„λ‘ μ„€μ •)

     chmod 600 /swapfile
  2. μŠ€μ™‘ 파일둜 μ„€μ •ν•˜κΈ°(mkswap)

     sudo mkswap /swapfile

  1. μŠ€μ™‘ ν™œμ„±ν™”ν•˜κΈ°(swapon)

     sudo swapon /swapfile
  2. μž¬λΆ€νŒ…μ‹œμ—λ„ μŠ€μ™‘μ΄ μ μš©λ˜λ„λ‘ /etc/fstab에 μ•„λž˜ λ‚΄μš© 적용

     /swapfile swap swap defaults 0 0
  3. μŠ€μ™‘μ΄ ν™œμ„±ν™” λ˜μ—ˆλŠ”μ§€ 확인

     sudo swapon --show

  1. μŠ€μ™‘ λΉ„ν™œμ„±ν™”ν•˜κΈ°(swapoff)

     sudo swapoff /swapfile

SWAP νŒŒν‹°μ…˜ 방식

  1. ν˜„μž¬ λ©”λͺ¨λ¦¬ 확인

  2. νŒŒν‹°μ…˜ λ‚˜λˆ„κΈ°

     sudo fdisk {μž₯치λͺ…}
     n -> p -> {νŒŒν‹°μ…˜ 번호} -> {SWAP μ˜μ—­μ˜ν¬κΈ°}
     sudo fdisk /dev/xvdb
     n -> p -> 1 -> +4G

  3. partprobe으둜 νŒŒν‹°μ…˜ ν…Œμ΄λΈ” 변경을 OS에 μ•Œλ¦Ό

     partprobe
  4. mkswap으둜 SWAPμ˜μ—­ 생성(/dev/{μž₯치λͺ…κ³Ό νŒŒν‹°μ…˜λ²ˆν˜Έ})

     sudo mkswap /dev/xvdb1

  5. μŠ€μ™‘ 적용 확인

     sudo swapon --show

  6. μž¬λΆ€νŒ…μ‹œμ—λ„ μŠ€μ™‘μ΄ μ μš©λ˜λ„λ‘ /etc/fstab에 μ•„λž˜ λ‚΄μš© 적용

     /dev/xvdb1 none swap sw 0 0

λ°˜μ‘ν˜•