하모니카 사용자(혹은 여타의 리눅스 사용자) 중 시스템 메모리가 '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 ##설정파일 열기
위의 그림과 같이 나옵니다.
기본적으로 해당 옵션들 앞에 '#'을 붙여 주석처리 해 놓았는데 따로 해제하지 않으면
/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
재부팅
부족한 글 읽어 주셔서 감사합니다. :)
https://easylinuxtipsproject.blogspot.com/p/speed-mint.html?m=1
참고하시면 하모니카 리눅스를 최적의 속도로 사용하는데 도움됩니다.