리눅스/OS 설정

[LINUX] SWAP OFF

ㅎㄷㄹㅁㅇ 2023. 4. 28. 17:13
반응형

SWAP 파티션 OFF 

Linux에서 SWAP은 시스템의 RAM(메모리)을 FULL로 사용하는 경우 필요에 따라 가상 메모리로 사용되는 하드디스크의 공간을 의미합니다. 시스템이 프로세스를 실행할 때 RAM(메모리)가 충분하지 않은 경우 Linux 커널은 가장 적게 사용되거나 비활성 데이터 중 일부를 RAM에서 SWAP 공간으로 이동합니다.

SWAP 공간은 하드디스크의 파티션으로 만들어 사용 하는 경우와 SWAP 파일을 마운트하여 사용 할 수 있습니다.  SWAP을 사용하면 시스템의 메모리 부족을 방지하는 데 도움이 될 수 있지만 데이터를 하드디스크로 SWAP하는 것이 RAM의 데이터에 액세스하는 것보다 느릴 수 있다는 점에서 실제 사이트에서는 SWAP을 사용은 하되 OS 파라미터 최적화를 통해 빨리 반환되게 설정합니다. 따라서, 중요한 시스템이라면 성능을 위해서 충분한 물리적 메모리를 확보하여 되도록이면 SWAP을 사용하지 않는 것이 좋습니다. 

위 설명처럼 물리적 메모리를 늘릴 수 없을때 SWAP은 굉장히 유용해 보이지만 SWAP을 OFF 해야하는 경우가 있습니다. 대표적으로 가상화 장비에서는 SWAP을 사용하지 않습니다. 만약 최초 구성이라면 SWAP OFF 보다는 SWAP 구성 자체를 하지 않는 것을 추천합니다.  

 

목차

     

    사용 중인 SWAP 영역 확인하기

    # free -g
                  total        used        free      shared  buff/cache   available
    Mem:              1           0           1           0           0           1
    Swap:             7           0           7
    
    # lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0  300G  0 disk 
    ├─sda1   8:1    0    2G  0 part /boot
    ├─sda2   8:2    0    8G  0 part [SWAP]
    └─sda3   8:3    0  290G  0 part /
    sr0     11:0    1 1024M  0 rom  
    
    # systemctl list-unit-files --type swap
    UNIT FILE                                                                 STATE    
    dev-disk-by\x2duuid-3846e6e2\x2d60d2\x2d441b\x2d8ce1\x2d3e6d4984c105.swap generated
    
    1 unit files listed.
    
    # cat /etc/fstab 
    ...
    UUID=58d04578-ea71-4a1c-8754-343bda36e68e /                       ext4    defaults        1 1
    UUID=d957ce98-2509-4cbb-8fc3-95e6f33533f9 /boot                   ext4    defaults        1 2
    UUID=3846e6e2-60d2-441b-8ce1-3e6d4984c105 swap                    swap    defaults        0 0

     

    위에서 확인 하는 것과 같이 SWAP 영역에 8G가 설정되어 있습니다. 실제로 Standard 파티션의 경우 /boot , / , swap 순으로 설정하는게 좋습니다. 그 이유는 / 파티션이 부족할 경우 SWAP 파티션을 줄이거나 삭제하는 방법으로 / 파티션 영역을 늘릴 수 있기 때문입니다. LVM을 사용하지 않고 Standard 파티셔닝을 한 경우라면 / 파티션이 최 하위에 있다면 증설이 어려운 단점이 있습니다. 

     

    /etc/fstab의 swap 파티션 영역을 주석처리하여 swap을 사용하지 않게 할 수도 있지만 경우에 따라 swap이 활성화가 된다고 합니다. systemctl 명령어를 통해 mask를 해 사용하지 않게 합니다. 

     

     

     

    SWAP 비활성화 

    # cat /etc/fstab 
    ...
    UUID=58d04578-ea71-4a1c-8754-343bda36e68e /                       ext4    defaults        1 1
    UUID=d957ce98-2509-4cbb-8fc3-95e6f33533f9 /boot                   ext4    defaults        1 2
    UUID=3846e6e2-60d2-441b-8ce1-3e6d4984c105 swap                    swap    defaults        0 0
    
    
    # cat /etc/fstab 
    ...
    UUID=58d04578-ea71-4a1c-8754-343bda36e68e /                       ext4    defaults        1 1
    UUID=d957ce98-2509-4cbb-8fc3-95e6f33533f9 /boot                   ext4    defaults        1 2
    #UUID=3846e6e2-60d2-441b-8ce1-3e6d4984c105 swap                    swap    defaults        0 0
    
    # systemctl list-unit-files --type swap
    UNIT FILE                                                                 STATE    
    dev-disk-by\x2duuid-3846e6e2\x2d60d2\x2d441b\x2d8ce1\x2d3e6d4984c105.swap generated
    
    1 unit files listed.
    
    # systemctl mask swap.target
    Created symlink /etc/systemd/system/swap.target → /dev/null.
    
    # systemctl mask dev-sda2.swap
    Created symlink /etc/systemd/system/dev-sda2.swap → /dev/null.

     

    위의 작업을 통해 swap off를 진행하면 됩니다. 

     

     

     

    서버 재시작 이후 SWAP OFF 확인

    # free -g
                  total        used        free      shared  buff/cache   available
    Mem:              1           0           1           0           0           1
    Swap:             0           0           0
    # lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0  300G  0 disk 
    ├─sda1   8:1    0    2G  0 part /boot
    ├─sda2   8:2    0    8G  0 part 
    └─sda3   8:3    0  290G  0 part /
    sr0     11:0    1 1024M  0 rom  
    # systemctl list-unit-files --type swap
    UNIT FILE     STATE 
    dev-sda2.swap masked
    
    1 unit files listed.

    명령어를 통해 확인해보면 SWAP 사이즈가 잡고 있던 영역이 사라진 걸 확인 할 수 있습니다. 

    반응형
    TOP