Home > CS > 2024 > πŸ’Ύ [CS] Swapμ΄λž€ λ¬΄μ—‡μΈκ°€μš”?

πŸ’Ύ [CS] Swapμ΄λž€ λ¬΄μ—‡μΈκ°€μš”?
CS

πŸ’Ύ [CS] Swapμ΄λž€ λ¬΄μ—‡μΈκ°€μš”?

1️⃣ Swapμ΄λž€?

  • Swap
    • 물리적 λ©”λͺ¨λ¦¬(RAM)κ°€ λΆ€μ‘±ν•  λ•Œ μ‚¬μš©λ˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬ νŽ˜μ΄μ§€λ₯Ό λ””μŠ€ν¬μ˜ νŠΉμ • μ˜μ—­(μŠ€μ™‘ 곡간)에 μ €μž₯ν•˜μ—¬ λ©”λͺ¨λ¦¬λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜λŠ” 기술
    • 물리적 RAM이 가득 찼을 λ•Œ, 자주 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” 데이터λ₯Ό λ””μŠ€ν¬(Swap 곡간)둜 이동.
      • μ΄λ ‡κ²Œ ν•¨μœΌλ‘œμ¨ λ©”λͺ¨λ¦¬ λΆ€μ‘±μœΌλ‘œ μΈν•œ μ‹œμŠ€ν…œ μ€‘λ‹¨μ΄λ‚˜ μ„±λŠ₯ μ €ν•˜λ₯Ό λ°©μ§€ν•  수 있음.

2️⃣ Swap의 μž‘λ™ 원리.

  • 1. λ©”λͺ¨λ¦¬ λΆ€μ‘± λ°œμƒ : 물리적 RAM이 가득 μ°¨λ©΄ 컀널이 μŠ€μ™‘ μ˜μ—­μ„ μ‚¬μš©ν•¨.
  • 2. μŠ€μ™‘ 아웃(Swap Out) : 자주 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬ νŽ˜μ΄μ§€λ₯Ό λ””μŠ€ν¬μ˜ μŠ€μ™‘ κ³΅κ°„μœΌλ‘œ 이동함.
  • 3. μŠ€μ™‘ 인(Swap In) : μŠ€μ™‘ 곡간에 있던 λ©”λͺ¨λ¦¬ νŽ˜μ΄μ§€λ₯Ό λ‹€μ‹œ RAM으둜 뢈러옴.

3️⃣ Swap의 νŠΉμ§•.

  • μž₯점:
    • RAM λΆ€μ‘± μ‹œ μ‹œμŠ€ν…œ λ‹€μš΄ λ°©μ§€
    • μΌμ‹œμ μœΌλ‘œ 더 λ§Žμ€ ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ κ°€λŠ₯
  • 단점:
    • λ””μŠ€ν¬ I/O μ†λ„λŠ” RAM보닀 느림 -> μŠ€μ™‘μ΄ κ³Όλ„ν•˜κ²Œ μ‚¬μš©λ˜λ©΄ μ‹œμŠ€ν…œ 속도가 느렀질 수 있음.
    • SSD λ””μŠ€ν¬λ₯Ό μ‚¬μš©ν•  경우 μž¦μ€ μŠ€μ™‘ μ‚¬μš©μ€ λ””μŠ€ν¬ 수λͺ…을 λ‹¨μΆ•μ‹œν‚¬ 수 있음.

4️⃣ Swap μ„€μ •.

# swap λ©”λͺ¨λ¦¬ ν• λ‹Ή (128M * 16 = 2GB).
sudo dd if=/dev/zero of=/swapfile bs=128M count=16

# μŠ€μ™‘ νŒŒμΌμ— λŒ€ν•œ κΆŒν•œ μ—…λ°μ΄νŠΈ.
sudo chmod 600 /swapfile

# swap μ˜μ—­ μ„€μ •.
sudo mkswap /swapfile

#swap νŒŒμΌμ„ μ‚¬μš©ν•  수 μžˆλ„λ‘ λ§Œλ“€κΈ°.
sudo swapon /swapfile

# swap 성곡 확인
sudo swapon -s

5️⃣ Swap μ‚¬μš©μ΄ ν•„μš”ν•œ 경우.

  • 1. RAM이 λΆ€μ‘±ν•œ μ‹œμŠ€ν…œ : λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ΄ 항상 높은 경우
  • 2. μΌμ‹œμ  λ©”λͺ¨λ¦¬ μ‚¬μš©μ΄ λ§Žμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ : 빅데이터 처리, λŒ€μš©λŸ‰ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰ μ‹œ
  • 3. μ•ˆμ •μ μΈ μ‹œμŠ€ν…œ 운영 : 예기치 μ•Šμ€ λ©”λͺ¨λ¦¬ λΆ€μ‘± μ‚¬νƒœ 예방

6️⃣ Swap μ‚¬μš© μ‹œ μ£Όμ˜μ‚¬ν•­.

  • κ³Όλ„ν•œ Swap μ‚¬μš© 주의 : Swap이 μ§€μ†μ μœΌλ‘œ μ‚¬μš©λ˜λ©΄ μ„±λŠ₯ μ €ν•˜ λ°œμƒ.
  • SSD λ””μŠ€ν¬ μ‚¬μš© μ‹œ 주의 : μž¦μ€ μŠ€μ™‘ μ‚¬μš©μ€ SSD 수λͺ… 단좕 κ°€λŠ₯
  • μ μ ˆν•œ Swap 크기 μ„€μ • : 일반적으둜 RAM μš©λŸ‰μ˜ 1λ°° ~ 2λ°° μΆ”μ²œ

7️⃣ κ²°λ‘ .

  • Swap은 RAM의 보쑰 역할을 ν•˜λ©°, 물리적 λ©”λͺ¨λ¦¬ λΆ€μ‘± 문제λ₯Ό μ™„ν™”.
    • κ·ΈλŸ¬λ‚˜ Swap 과도 μ‚¬μš© μ‹œ μ„±λŠ₯ μ €ν•˜κ°€ λ°œμƒν•  수 μžˆμœΌλ―€λ‘œ μ£Όμ˜ν•΄μ•Ό 함.
    • EC2 μΈμŠ€ν„΄μŠ€λ‚˜ λ‹€λ₯Έ λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œμ—μ„œ λ©”λͺ¨λ¦¬ μ‚¬μš© νŒ¨ν„΄μ— 따라 μ μ ˆν•˜κ²Œ μ„€μ •ν•΄μ•Ό 함.