우분투 리눅스에서 ZRAM 구성하는 방법

메모리 모듈의 확대 사진.

ZRAM은 CPU 성능을 일부 희생하여 더 많은 RAM을 얻는 훌륭한 솔루션이지만, ZRAM에 더 많은 또는 적은 RAM을 할당하려면 어떻게 구성할 수 있을까요? 압축 알고리즘을 어떻게 변경할 수 있을까요? 이러한 변경이 가치 있는 시나리오는 무엇일까요? 우분투에서 ZRAM을 구성하는 방법을 알아보려면 계속 읽어보세요.

목차

  • 현재 ZRAM 상태 확인
  • ZRAM 크기 변경
  • ZRAM 압축 알고리즘 변경

알아두면 좋은 점: ZRAM, ZCache 또는 ZSwap이 적합한지 확실하지 않은 경우, 저희가 답변해 드립니다.

현재 ZRAM 상태 확인

대부분의 사람들은 zram-config 스크립트를 통해 우분투 및 데비안 기반 리눅스 배포판에서 ZRAM을 사용합니다. 이는 ZRAM을 가장 간단한 방법으로 활용할 수 있게 해주기 때문입니다. 다음 명령어로 설치할 수 있습니다:

sudo apt install util-linux zram-config

다음으로, 우분투 머신에서 ZRAM이 이미 활성화되어 있는지 확인합니다. zramctl 유틸리티를 실행하여 확인할 수 있습니다:

zramctl

시스템에서 Zswap이 현재 비활성화되어 있는지 확인하세요:

sudo-s  
echo0>/sys/module/zswap/parameters/enabled

Zswap은 ZRAM과 유사하게 모든 리눅스 배포판에 기본적으로 제공되는 대체 RAM 캐시 솔루션입니다. 그러나 ZRAM과 달리 물리적 스왑 파티션에 의존하므로 구형 디스크에서는 느릴 수 있습니다.

우분투 시스템에서 초기 ZRAM 블록 장치를 생성하기 위해 컴퓨터를 재부팅하세요.

팁: 우분투에서 TRIM을 활성화하여 SSD 드라이브의 수명을 연장하는 방법을 알아보세요.

올바른 ZRAM 설정 알기

머신이 다시 작동하게 되면 이제 ZRAM 파티션이 보고되고 있는지 확인하세요:

cat/proc/swaps

사용 가능한 스왑 파일과 ZRAM 블록 장치를 보여주는 터미널.

스크린샷에서 볼 수 있듯이, 일반적인 스왑 파일과 단일 ZRAM 블록 장치가 공존하고 있습니다. 이 시스템은 4GB의 RAM과 2GB의 ZRAM을 가지고 있으며, 이는 RAM 양의 절반입니다. 그러나 작업 부하에 따라 이 크기를 변경하고 싶을 수 있습니다.

  • 멀티미디어 및 비디오 작업을 하는 경우, 이는 압축이 잘 되지 않으므로 ZRAM의 크기를 줄이고 실제 스왑의 크기를 늘리는 것이 좋습니다.
  • 대형 데이터베이스나 고도로 압축 가능한 다른 유형의 데이터를 다루는 경우, 그 반대입니다. 이러한 시나리오에서는 ZRAM의 크기를 늘려 컴퓨터의 반응성을 높일 수 있습니다.

또한 ZRAM에서 사용하는 압축 알고리즘과 관련된 조정도 고려할 가치가 있습니다. 기본적으로 LZO 또는 LZO-RLE를 사용하며, 이는 CPU에 가벼운 부담을 줍니다. 그러나 최신 CPU에서는 새로운 ZSTD 알고리즘이 일반적으로 더 나은 압축률을 제공하며, CPU에 대한 부담이 다소 높지만 느껴지지 않습니다. PC가 10년 이하인 경우, 구형 LZO 변형 대신 이 알고리즘을 사용하는 것이 좋습니다.

ZRAM 크기 변경

ZRAM 설정을 변경하려면 “/usr/bin” 폴더에 있는 exec 스크립트를 편집해야 합니다. 터미널에 다음 명령어를 입력하세요:

sudonano/usr/bin/init-zram-swapping

“init-zram-swapping” 스크립트를 스크롤하여 mem으로 시작하는 줄을 찾습니다.

zram 스와핑 스크립트 내 mem 변수를 강조 표시하는 터미널.

이것은 커널이 ZRAM 블록 장치에 할당할 공간의 양을 정의합니다. 기본적으로 시스템의 물리적 메모리의 절반을 예약합니다. “1024”를 “512”로 바꾸어 이를 1/4로 줄일 수 있습니다.

mem 변수의 낮은 메모리 오프셋을 강조 표시하는 터미널.

ZRAM이 차지하는 메모리 양을 늘리려면 mem 값을 “1536”으로 설정할 수 있습니다. 이렇게 하면 물리적 메모리의 3/4가 ZRAM에 할당됩니다.

mem 변수의 높은 메모리 오프셋을 강조 표시하는 터미널.

ZRAM 압축 알고리즘 변경

같은 위치에서 ZRAM의 압축 알고리즘도 변경할 수 있습니다. 그렇게 하려면 새 터미널 세션을 열고 ZRAM에 사용할 수 있는 모든 압축 알고리즘을 나열하세요:

cat/sys/block/zram0/comp_algorithm

ZRAM 모듈에 대한 모든 사용 가능한 압축 알고리즘을 보여주는 터미널.

고급 사용자 정의 ZRAM 구성에서 알고리즘을 혼합하여 사용할 수 있습니다. 그러나 기본값을 사용하는 경우, 모든 ZRAM 파티션은 동일한 알고리즘을 사용합니다.

이전에 편집한 “init-zram-swapping” exec 스크립트로 돌아가세요. 거기에서 다음 줄을 찾습니다:

echo$mem>/sys/block/zram0/disksize

이 명령어를 직접 아래에 복사하여 두 개의 인스턴스를 만듭니다.

ZRAM 블록 장치에 대한 중복 echo UNIX 파이프를 강조 표시하는 터미널.

첫 번째 인스턴스의 줄 시작 부분에 있는 $mem을 “zstd”로 바꾸세요.

첫 번째 echo UNIX 파이프에 대한 zstd 문자열을 강조 표시하는 터미널.

줄 끝을 “disksize”에서 “comp_algorithm”으로 변경하세요.

첫 번째 echo UNIX 파이프에 대한 comp_algorithm 문자열을 강조 표시하는 터미널.

참고: 다른 알고리즘을 사용하려면 위 명령어의 zstdcat /sys/block/zram0/comp_algorithm에서 가져온 값 중 하나로 변경하세요.

편집한 “init-zram-swapping” 파일을 저장한 후 컴퓨터를 재시작하세요.

zramctl 명령어를 실행하여 새로운 ZRAM 설정이 작동하는지 확인하세요.

더 큰 메모리 기반과 다른 알고리즘을 사용하는 ZRAM 블록 장치를 보여주는 터미널.

조정된 스왑을 적극적으로 사용할 때 시스템의 성능을 부하 하에 확인하세요. 느리거나 버벅거림이 느껴지면 설정한 값을 줄여야 할 수 있습니다. 반면에, 시스템이 빠르게 작동한다면 아마도 값을 더 늘릴 수 있을 것입니다.

시스템의 ZRAM을 구성하는 것은 우분투 시스템을 최적화하는 첫 번째 단계일 뿐입니다. 우분투에서 직접 리눅스 커널을 컴파일하여 기계에서 최대 성능을 끌어내는 방법을 알아보세요. 한편, 더 강력한 PC를 구축하려는 경우, 리눅스를 위한 PC를 구축할 때 주의해야 할 사항은 다음과 같습니다.

이미지 출처: Liam Briese via Unsplash. 모든 수정 및 스크린샷은 Ramces Red에 의해 작성되었습니다.