저사양 메모리에서 하모니카를 사용하는 분을 위한 systemd-swap 설치하기

by 마이쮸가이 posted Mar 21, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

하모니카 사용자(혹은 여타의 리눅스 사용자) 중 시스템 메모리가 '4기가 이하'인 저사양 컴퓨터 사용자를 위한 정보 입니다.

메모리가 4기가 보다 많은 분들께는 무의미 하지만 1/2/3 기가의 메모리를 사용하시는 분들께 유의미 합니다. 

 

zram 이란일종의 swap 이지만 Disk I/O 를 일으키지 않고 일정 조건에 의해서 swap 할 메모리를 우선 압축하도록 하는 기능이며

이는 메모리상에 존재하는 데이터들은 상당히 압축률이 높은 특성을 갖는다는 전제를 기본으로 구현된 tool 입니다.

zswap은 zram이 하는 기능을 스왑파티션 혹은 스왑파일을 통해 구현한다고 보시면 될 것 같습니다.

swap파일의 동적할당은 스왑 파티션 지정이나 스왑 파일을 따로 만들지 않고 필요에 따라 systemd-swap이 스왑파일의 크기를

조절해 주는 기능이라고 보시면 됩니다.

 

장점 : zram - 메모리 상에서 영역을 지정하여 우선도가 낮은 데이터를 압축하여 저장 합니다. 이는 시스템 메모리의 증가 효과를 가집니다.

                     낮은 메모리/ HDD사용자 추천

          zswap - zram이 압축한 우선도 낮은 데이터를 스왑에 저장 합니다. 낮은 메모리 / SDD 혹은 EMMC 사용자 추천

          

          스왑 동적할당 - 필요에 따라 스왑크기를 자동으로 조절함으로 고정된 스왑 파티션 혹은 스왑 파일로 인한 디스크 용량 낭비를 줄입니다.

                                  디스크 용량이 작은 시스템에 추천 

 

단점 : 메모리상에서 데이터를 압축하는 과정을 거치므로 시스템 부하가 어느정도는 있을 수 있습니다. 

         하지만 CPU 클럭이 1G가 이상되는 시스템에서는 체감하기 힘들 정도의 부하 입니다.

 

 

아래 부터는 systemd-swap 을 설치하여 여타의 작업없이 'zram/zswap/swap파일의 동적할당' 기능을 간단한 설정으로 사용가능하게

하는 방법입니다. 아래 글은 설치, 설정, 활성화 의 단계로 작성되며 굵은 글씨는 터미널 명령어 입니다.

 

 

############# 설치 ############

 

sudo apt-get install    ## 이 방법은 git을 이용함으로 설치되어 있는지 확인합니다.

                                          하모니카에는 기본 포함.  

 

 

git clone https://github.com/Nefelim4ag/systemd-swap.git

 

cd systemd-swap

 

make deb

 

sudo apt install ./systemd-swap_*_all.deb

 

 

 

############ 설정 #########

 

/etc/systemd/swap.conf                                        ## 설정파일

/usr/share/systemd-swap/swap-default.conf        ## 기본 설정, 자세한 설정을 원하신다면 한번 읽어 보시는 것을 추천합니다.

 

우선 본인의 시스템에 스왑이 있는지 확인 합니다.

 

free -m                           ## 좌측 3개의 명령어중 아무거나 택일하여 스왑확인

                                           명령어 엔터 후 스왑정보나 파티션 정보가 나오면 스왑이 있는 것 입니다.

cat /proc/swaps

 

swapon -s

 

 

스왑의 유무를 확인 하셨다면  

 

sudo nano /etc/systemd/swap.conf    ##설정파일 열기

제목 없음.png

위의 그림과 같이 나옵니다.

기본적으로 해당 옵션들 앞에 '#'을 붙여 주석처리 해 놓았는데 따로 해제하지 않으면 

/usr/share/systemd-swap/swap-default.conf 에서 확인 할 수 있는 기본옵션으로 실행됩니다.

기본은 zswap이 활성화, zram과 스왑파일 동적 할당은 비활성화 되어 있습니다. 

 

익숙하지 않은 분들은 윗 단계의 스왑확인에서 스왑이 있다면 따로 설정하지 않고 적용으로 넘어가시면 됩니다.

반대로 스왑이 없다면 꼭 동적 스왑파일 관련 옵션을 활성화 해줘야 합니다.

 

옵션의 활성화는 기본적으로 왼쪽의 #을 지워주는 것으로 가능하며 아래 3가지 옵션만 손대시는 것을 추천합니다.

기본적으로 효율적인 알고리즘이 초기설정으로 되어 있습니다. 

 

#zswap_enabled=1    =>    zswap_enabled=1     ## 왼쪽 처럼 #을 지워주고 해당 값을 1 (on) / 0(off)로 선택합니다.

 

#zram_enabled=0      =>    zram_enabled=0       ## zram과 zswap은 함께 사용하지 않습니다.

                                                                                  둘중 선택해서 사용하게 되는 경우 하나를 1 (on) 선택하시면 나머지는 0 (off)를 해 줘야합니다.

                                                                                  함께 사용해도 큰 문제는 없겠으나 효율적이지 않습니다.

 

#swapfc_enabled=0    =>    swapfc_enabled=1    ## 동적 스왑파일 활성화, 본인 시스템에 스왑이 있으면 이 옵션은 활성화 하지 않습니다.

                                                                                    위의 확인에서 스왑이 없는 것이 확인이 되면 이 옵션을 활성화 합니다.

 

초보자에겐  다소 어려울 수 있으니 아래 예제를 참고하여 적용하시는 것이 편합니다.

 

@@ 예제

 

1. 스왑없는 시스템으로 zram을 사용한다. 혹은 이미 스왑이 있지만 zram을 사용한다.

 

zswap_enabled=0

zram_enabled=1

swapfc_enabled=0

 

2. 이미 스왑이 있는 상태에서 zswap을 사용한다.(기본/ 설정변경 할 필요없음)

zswap_enabled=1

zram_enabled=0

swapfc_enabled=0

 

3. 스왑이 없는 시스템에서 zswap과 동적할당을 사용한다.

zswap_enabled=1

zram_enabled=0

swapfc_enabled=1

 

4.스왑이 없는 시스템에서 zram과 동적할당을 사용한다.

zswap_enabled=0

zram_enabled=1

swapfc_enabled=1

 

 

######################## 적용 ######################

 

 

sudo systemctl enable --now systemd-swap           ## 해당 systemd-swap 서비스를 등록하고 실행합니다.

 

 

재부팅하면 자동으로 적용이 됩니다.

 

 

자세한 것은 아래 링크를 참조하시면 되겠습니다.

 

참조링크 : https://github.com/Nefelim4ag/systemd-swap

 

 

글로 써서 복잡해 보이지만 사용하고 있는 시스템에 이미 swap이 있다면 설치, 적용 2단계로 바로 사용 가능합니다.

설치가 끝난 systemd-swap 폴더는 지우셔도 됩니다.

사용해 보시고 별로 필요없다고 생각이 되시면 아래의 순서로 제거하시면 되겠습니다.

 

 

##################### 제거 ############################

 

sudo systemctl stop systemd-swap

 

sudo systemctl disable systemd-swap

 

sudo apt purge systemd-swap

 

재부팅

 

 

 

부족한 글 읽어 주셔서 감사합니다. :)

 

Articles

3 4 5 6 7 8 9 10 11 12