Home > CS > 2024 > πŸ’Ύ [CS] Swap μ„€μ •μ΄λž€ λ¬΄μ—‡μΌκΉŒμš”?

πŸ’Ύ [CS] Swap μ„€μ •μ΄λž€ λ¬΄μ—‡μΌκΉŒμš”?
CS

πŸ’Ύ [CS] Swap μ„€μ •μ΄λž€ λ¬΄μ—‡μΌκΉŒμš”?

  • Swap 섀정은 μ»΄ν“¨ν„°μ—μ„œ RAM(μ£Ό λ©”λͺ¨λ¦¬)이 λΆ€μ‘±ν•  경우 데이터λ₯Ό μΌμ‹œμ μœΌλ‘œ μ €μž₯ν•  수 μžˆλŠ” λ””μŠ€ν¬ 곡간을 μ„€μ •ν•˜λŠ” μž‘μ—…μ„ μ˜λ―Έν•©λ‹ˆλ‹€.
    • 이λ₯Ό 톡해 μ‹œμŠ€ν…œμ΄ 더 λ§Žμ€ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜κ±°λ‚˜ λ©”λͺ¨λ¦¬ μš”κ΅¬λŸ‰μ΄ 큰 μž‘μ—…μ„ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • Swap은 주둜 λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œμ—μ„œ μ‚¬μš©λ˜λ©°, μ‹œμŠ€ν…œ λ©”λͺ¨λ¦¬λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜λŠ” 데 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€.

1️⃣ Swap의 μ£Όμš” κ°œλ….

1️⃣ Swap μ˜μ—­.

  • λ””μŠ€ν¬μ˜ 일뢀λ₯Ό 가상 λ©”λͺ¨λ¦¬λ‘œ μ‚¬μš©ν•˜λŠ” 곡간.
  • RAM이 λΆ€μ‘±ν•˜λ©΄ Swap에 데이터λ₯Ό μ €μž₯ν•΄ μ‹œμŠ€ν…œμ΄ 계속 λ™μž‘ν•˜λ„λ‘ 지원.

2️⃣ Swap 파일 λ˜λŠ” Swap νŒŒν‹°μ…˜.

  • Swap 파일 : 파일 μ‹œμŠ€ν…œ λ‚΄μ—μ„œ Swap μš©λ„λ‘œ μ‚¬μš©λ˜λŠ” 파일.
  • Swap νŒŒν‹°μ…˜ : λ””μŠ€ν¬μ˜ 별도 νŒŒν‹°μ…˜μœΌλ‘œ ν• λ‹Ήλœ Swap 곡간.

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

    1. RAM이 뢀쑱해지면, μš΄μ˜μ²΄μ œλŠ” μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 데이터(예: 였래 μ‚¬μš©ν•˜μ§€ μ•Šμ€ ν”„λ‘œκ·Έλž¨μ˜ 데이터)λ₯Ό Swap μ˜μ—­μœΌλ‘œ μ΄λ™μ‹œν‚΅λ‹ˆλ‹€.
    1. 이λ₯Ό 톡해 RAM은 μƒˆλ‘œμš΄ 데이터 μ²˜λ¦¬μ— μ‚¬μš©ν•  수 μžˆλŠ” μ—¬μœ  곡간을 ν™•λ³΄ν•©λ‹ˆλ‹€.
    1. ν•„μš” μ‹œ, Swap에 μ €μž₯된 데이터λ₯Ό λ‹€μ‹œ RAM으둜 λΆˆλŸ¬μ˜΅λ‹ˆλ‹€.

3️⃣ Swap의 μž₯점.

  • 1. λ©”λͺ¨λ¦¬ λΆ€μ‘± 문제 μ™„ν™”.
    • RAM이 뢀쑱해도 μ‹œμŠ€ν…œμ΄ 계속 μž‘λ™ν•˜λ„λ‘ 지원.
    • κ³Όλ„ν•œ RAM μ‚¬μš©μœΌλ‘œ μΈν•œ ν”„λ‘œκ·Έλž¨ κ°•μ œ μ’…λ£Œ 방지.
  • 2. μ‹œμŠ€ν…œ μ•ˆμ •μ„± 증가.
    • Swap은 RAM κ³ΌλΆ€ν•˜λ₯Ό 쀄이고 μ‹œμŠ€ν…œμ˜ μ•ˆμ •μ„±μ„ μœ μ§€.
  • 3. λ©€ν‹°νƒœμŠ€ν‚Ή 지원.
    • μ—¬λŸ¬ ν”„λ‘œκ·Έλž¨μ„ λ™μ‹œμ— μ‹€ν–‰ν•  λ•Œ 유용.

4️⃣ Swap의 단점.

  • 1. 속도 μ €ν•˜.
    • λ””μŠ€ν¬λŠ” RAM보닀 속도가 λŠλ¦¬λ―€λ‘œ Swap에 데이터λ₯Ό μ΄λ™ν•˜λ©΄ μ„±λŠ₯이 μ €ν•˜λ  수 있음.
  • 2. λ””μŠ€ν¬ 수λͺ… 단좕.
    • SSDλ₯Ό μ‚¬μš©ν•  경우 Swap으둜 인해 λ””μŠ€ν¬μ˜ μ“°κΈ° μž‘μ—…μ΄ 증가해 수λͺ…이 단좕될 κ°€λŠ₯성이 있음.
  • 3. Swap 과도 μ‚¬μš© μ‹œ μ‹œμŠ€ν…œ 응닡성 μ €ν•˜.
    • Swap이 μ§€λ‚˜μΉ˜κ²Œ μ‚¬μš©λ˜λ©΄ ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 속도가 λŠλ €μ§€κ³ , μ‹œμŠ€ν…œ 전체가 느렀질 수 있음.

5️⃣ Swap μ„€μ • 확인.

  • λ¦¬λˆ…μŠ€μ—μ„œ Swap μ„€μ • 여뢀와 μƒνƒœλ₯Ό ν™•μΈν•˜λ €λ©΄ λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€.
      1. ν˜„μž¬ Swap μƒνƒœ 확인.
          swapon --show
        
    • κ²°κ³Ό: ν˜„μž¬ ν™œμ„±ν™”λœ Swap νŒŒν‹°μ…˜μ΄λ‚˜ 파일이 ν‘œμ‹œλ¨.
      1. μ‹œμŠ€ν…œ 전체 λ©”λͺ¨λ¦¬ 정보 확인.
          free -h
        

6️⃣ Swap 생성 및 μ„€μ • 방법.

  • 1. Swap 파일 생성.
    • κΈ°μ‘΄ νŒŒν‹°μ…˜μ„ λ³€κ²½ν•˜μ§€ μ•Šκ³  Swap νŒŒμΌμ„ μ‚¬μš©ν•˜λ €λ©΄ λ‹€μŒ 단계λ₯Ό λ”°λ¦…λ‹ˆλ‹€.
        sudo fallocate -l 1G /swapfile #1GB 크기의 Swap 파일 생성
        sudo chmod 600 /swapfile # 파일 κΆŒν•œ μ„€μ •
        sudo mkswap /swapfile # Swap 파일둜 포맷
        sudo swapon /swapfile # Swap ν™œμ„±ν™”
      
  • 2. Swap νŒŒμΌμ„ μ‹œμŠ€ν…œμ— 영ꡬ μΆ”κ°€.
    • μ‹œμŠ€ν…œ μž¬λΆ€νŒ… 후에도 Swap이 μœ μ§€λ˜λ„λ‘ μ„€μ •ν•˜λ €λ©΄ /etc/fstab νŒŒμΌμ— μΆ”κ°€.
        echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
      
  • 3. Swap νŒŒν‹°μ…˜ 생성.
    • λ””μŠ€ν¬μ˜ 일뢀λ₯Ό Swap νŒŒν‹°μ…˜μœΌλ‘œ μ‚¬μš©ν•˜λ €λ©΄.
        sudo fdisk /dev/sdX # νŒŒν‹°μ…˜ 생성
        sudo mkswap /dev/sdX1 # Swap νŒŒν‹°μ…˜μœΌλ‘œ 포맷
        sudo swapon /dev/sdX1 # Swap ν™œμ„±ν™”
      

7️⃣ Swap λΉ„ν™œμ„±ν™”

  • 1. μΌμ‹œμ μœΌλ‘œ Swap λΉ„ν™œμ„±ν™”
    sudo swapoff /swapfile
    
  • 2. 영ꡬ λΉ„ν™œμ„±ν™”
    • /etc/fstab νŒŒμΌμ—μ„œ Swap ν•­λͺ©μ„ μ œκ±°ν•˜κ³  λ‹€μ‹œ λΆ€νŒ….

8️⃣ Swap 크기 κ²°μ •.

  • 일반적으둜 μ‹œμŠ€ν…œμ˜ RAM 크기에 따라 μ μ ˆν•œ Swap 크기λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
    • 1GB RAM μ΄ν•˜ : RAM 크기의 2λ°°.
    • 2 ~ 4GB RAM : RAM 크기와 동일.
    • 8GB RAM 이상 : μ‹œμŠ€ν…œ μš©λ„μ— 따라 닀름(보톡 4GB ~ 8GB).

9️⃣ Swap μ‚¬μš© 사둀.

  • 1. λ¦¬μ†ŒμŠ€ μ œν•œλœ ν™˜κ²½.
    • RAM이 적은 μ‹œμŠ€ν…œμ—μ„œ Swap을 톡해 더 λ§Žμ€ ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ κ°€λŠ₯.
  • 2. 데이터 κ³Όν•™ 및 λŒ€κ·œλͺ¨ μ—°μ‚°.
    • λ©”λͺ¨λ¦¬λ₯Ό 많이 μ‚¬μš©ν•˜λŠ” μž‘μ—…(예: λ¨Έμ‹ λŸ¬λ‹, λŒ€κ·œλͺ¨ 데이터 처리)μ—μ„œ 유용.
  • 3. μ„œλ²„ ν™˜κ²½.
    • RAM이 λΆ€μ‘±ν•œ 경우λ₯Ό λŒ€λΉ„ν•΄ Swap 섀정을 톡해 μ„œλ²„μ˜ λ‹€μš΄νƒ€μž„μ„ 방지.

1️⃣0️⃣ Swap이 ν•„μš” μ—†λŠ” 경우.

  • μΆ©λΆ„ν•œ RAM이 μžˆλŠ” 경우.
  • Swap μ‚¬μš©μ΄ λ””μŠ€ν¬ μ„±λŠ₯에 뢀정적 영ν–₯을 λ―ΈμΉ  수 μžˆλŠ” 경우(예: SSD 수λͺ… 우렀).

1️⃣1️⃣ μš”μ•½.

  • Swap은 RAM λΆ€μ‘± μ‹œ λ””μŠ€ν¬λ₯Ό 보쑰 λ©”λͺ¨λ¦¬λ‘œ μ‚¬μš©ν•˜λŠ” 기술둜, μ‹œμŠ€ν…œ μ•ˆμ •μ„±κ³Ό λ©”λͺ¨λ¦¬ 관리λ₯Ό λ•μŠ΅λ‹ˆλ‹€.
    • ν•˜μ§€λ§Œ μ„±λŠ₯ μ €ν•˜μ™€ λ””μŠ€ν¬ 수λͺ… λ‹¨μΆ•μ˜ 단점이 μžˆμ„ 수 μžˆμœΌλ―€λ‘œ, μ‹œμŠ€ν…œ μš”κ΅¬ 사항에 맞좰 적절히 μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.