728x90
반응형
맨 위로 올라가기
What is Memory Optimization?

 

메모리 최적화란, SBC(Single Board Computers)와 같은 환경에서 제한된 메모리 자원을 효율적으로 관리하여 시스템 성능과 안정성을 향상시키는 과정이다.

 

  • 메모리 최적화의 다른 방법들
    1. 메모리 클리닝:
      불필요하게 메모리를 차지하는 캐시나 임시파일들을 정기적으로 정리함으로서 메모리 사용량을 줄일 수 있다.
    2. 자원 사용량 최적화:
      소프트웨어나 애플리케이션의 메모리 사용량을 최적화하여 시스템의 메모리 효율성을 향상시킨다.
    3. 메모리 할당 최적화:
      프로그램이나 서비스가 메모리를 효율적으로 사용하도록 알고리즘을 조정한다.
    4. 프로세스 관리:
      백그라운드에서 실행되는 불필요한 서비스나 프로세스를 최소화하여 메모리 사용을 줄인다.

  • ZRAM
    ZRAM은 리눅스 커널의 모듈 중 하나로, RAM의 일부를 압축된 메모리 영역으로 사용하여 가상의 스왑 공간을 생성한다. 기본적으로 ZRAM은 메모리에 저장된 데이터를 압축하여 실제 사용하는 메모리 양을 줄이는 방식으로 작동된다.
    이렇게 함으로서 시스템은 더 많은 데이터를 RAM 내에 보관할 수 있게 되고, 실제 물리적 메모리가 부족할 때의 성능 저하를 어느 정도 완화할 수 있다.
    • 사용 이유:
      1.  메모리 효율성 향상:
        ZRAM을 사용하면 데이터 압축하여 RAM 내에 더 많은 정보를 저장할 수 있다.
        이는 특히 RAM 용량이 제한적인 장치에서 유용하다.
      2. 성능 개선:
        기존의 디스크 기반 스왑 공간보다 훨씬 빠른 액세스 속도를 제공한다.
        이는 시스템의 전반적인 반응 속도와 성능을 개선할 수 있다.
      3. 디스크 소모 감소:
        디스크 기반 스왑의 경우, 특히 SSD 와 같은 경우 지속적인 쓰기 작업으로 디스크 수명이 단축 될 수 있다.
         ZRAM 은 이런 문제를 방지할 수 있다.

 

sudo apt-get install zram-config
sudo vi /usr/bin/init-zram-swapping

htop interface 활용한 시스템 모니터링(일반적)

 

#!/bin/sh

# load dependency modules
NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0$/1/')
if modinfo zram | grep -q ' zram_num_devices:' 2>/dev/null; then
  MODPROBE_ARGS="zram_num_devices=${NRDEVICES}"
elif modinfo zram | grep -q ' num_devices:' 2>/dev/null; then
  MODPROBE_ARGS="num_devices=${NRDEVICES}"
else
  exit 1
fi
modprobe zram $MODPROBE_ARGS

# Calculate memory to use for zram (1/2 of ram)
totalmem=`LC_ALL=C free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/  *.*//'`
mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))

# initialize the devices
for i in $(seq ${NRDEVICES}); do
  DEVNUMBER=$((i - 1))
  echo $mem > /sys/block/zram${DEVNUMBER}/disksize
  mkswap /dev/zram${DEVNUMBER}
  swapon -p 5 /dev/zram${DEVNUMBER}
done
# Add a multiplier (* 5) at the end of the mem....
mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024 * 5))

swap memory 확장.

 

728x90
반응형

+ Recent posts