728x90

우분투에서 RAM이 부족합니까? ZRAM 사용


Linux 시스템에서 RAM이 부족할 때마다 여분의 메모리를 제공하기 위해 저장 장치를 사용하여 스왑 메모리 를 활성화했습니다 . 주된 이점은 여분의 하드웨어가 필요하지 않지만 일시적으로 만 사용하지 않는 한 훨씬 더 느린 액세스와 잠재적 인 문제 또는 마모로 인해 발생한다는 것입니다.

이번 주말, 나는 ODROID-XU4Q 보드에서 Arm Compute Library 를 컴파일 했고, 시스템이 메모리 부족으로 인해 처음으로 추락했기 때문에 eMMC 플래시 모듈에서 스왑을 다시 시작하여 빌드를 성공적으로 완료 할 수있었습니다. 그러나 ZRAM을 대신 사용하는 것이 좋을 것이라고 들었습니다.

그래서 ZRAM은 무엇입니까? Wikipedia는 다음과 같이 설명합니다 .

zram은 이전에 compcache라고 불 렸지만 램 디스크에 압축 된 블록 장치를 생성하기위한 Linux 커널 모듈이지만 즉석에서 "디스크"압축을 사용합니다.

따라서 스왑과 유사합니다. RAM에서 작동하고 메모리를 압축합니다. 스왑과 결합 할 수도 있지만, 그 경로를 따라야 할 경우 메모리를 업그레이드하거나보다 강력한 하드웨어 플랫폼으로 변경하는 것이 좋습니다. ZRAM 지원은 2014 년 초에 Linux 3.14가 출시 된 이래 안정적 으로 간주 되었습니다 .

ZRAM 사용 방법을 보여주기 전에 보드의 메모리를 확인해 봅시다.


약 2GB RAM이고 스왑은 사용할 수 없습니다. 이론 상으로는 우분투 또는 데비안에서 ZRAM을 활성화하는 것은 간단한 단계입니다.


설치가 잘되었지만 ZRAM을 사용할 수 없었습니다. 우선, / proc / config 나 / proc / config.gz 를 체크하여 Linux 커널에서 ZRAM이 활성화되어 있는지 확인하십시오 :


ZRAM은 모듈로 구축됩니다. 나는 그것을 가능하게하고 점검하기 위해 여러 가지 일을 시도했지만,이 단계에서 어디로 가야 할지를 알지 못했다. 거의 잠자리에들 때가되었다. 이 경우 가장 좋은 행동 경로는 무엇입니까? 잠에서 깨어서 문제를 해결하기 위해 밤새도록 일하십니까? 아니! 신기한 실수. 몇 년 동안의 경험으로 저에게 장비를 끄고 즐거운 밤을 보내실 수 있다고 가르쳐 주셨습니다.

아침 시간, 아침 식사, 사무실까지 걸어 컴퓨터 및 보드 켜기, et voilà :


성공! 그래서 전날 작동하도록 보드를 재부팅해야했습니다 ... 그래서 우리는 1GB ZRAM 스왑을 8 개의 블록 장치에 사용할 수 있습니다. 나는 그들이 필요로하는 RAM을 먹는 것을 피하기 위해 필요하다고 생각합니다.

그래서 Arm Compute Library를 구축하고, Chromium과 Thunderbird와 같은 몇 가지 프로그램을 실행하고, htop을 사용하여 동시에 RAM 사용을 모니터링함으로써 조금 더 힘들게 만들어서 스왑을 사용해 보도록하겠습니다.

마지막 단계에서 RAM의 나머지가 ZRAM에 사용되기 때문에 1.11GB 메모리가있는 506MB의 "스왑"이 사용되는 것을 볼 수 있습니다. 그러나 ZRAM 블록 장치가 필요에 따라 하나씩 사용된다는 전제하에 모든 8 개의 장치가 거의 동일한 양의 데이터를 보유하고 있음이 틀 렸습니다.


그것은 참조 용으로 무료 출력입니다.


좋은 소식은 Chromium과 Firefox가 백그라운드에서 실행되는 경우에도 빌드가 ZRAM으로 정상적으로 완료 될 수 있다는 것입니다.

ZRAM은 데이터를 지속적으로 압축 및 압축 해제해야하며 시스템에서 액세스 할 수있는 압축되지 않은 RAM의 양을 줄이므로 실제로 시스템 성능이 저하 될 수 있습니다. 그러나 RAM을 자주 사용하지 않거나 특정 응용 프로그램을 사용하면 사용할 수 있습니다. 방금 ZRAM을 단일 빌드에 필요로 했으므로 이제는 ZRAM을 제거하여 비활성화 할 수 있습니다.


그러나 zramctl 유틸리티를 사용하여 조정할 수도 있습니다.


매개 변수없이 zramctl을 실행하면 실제 압축 / 압축되지 않은 데이터가 블록 당 얼마나 많이 사용되는지 확인할 수 있습니다.


zramswap 서비스는 우분투 18.04에 systemd에 의해 처리됩니다 그리고 당신은 / etc / systemd / 시스템 / 체크 아웃 수있는 멀티 user.target.wants / zram-config.service 이 설정이 얼마나 이해하고도 부팅시를 제어 할 수 있습니다. 예를 들어 프로세서 당 하나의 블록 장치가 설정되어있는 것을 볼 수 있습니다. Exynos 5422는 8 코어 프로세서이므로 여기에 8 개의 블록 장치가 있습니다. 그 밖의 팁은 의견에 반영됩니다.

https://www.cnx-software.com/2018/05/14/running-out-of-ram-in-ubuntu-enable-zram/

+ Recent posts