728x90
반응형
![맨 위로 올라가기](https://tistory4.daumcdn.net/tistory/5482790/skin/images/ivmovetop.png)
What is Memory Optimization?
메모리 최적화란, SBC(Single Board Computers)와 같은 환경에서 제한된 메모리 자원을 효율적으로 관리하여 시스템 성능과 안정성을 향상시키는 과정이다.
- 메모리 최적화의 다른 방법들
- 메모리 클리닝:
불필요하게 메모리를 차지하는 캐시나 임시파일들을 정기적으로 정리함으로서 메모리 사용량을 줄일 수 있다. - 자원 사용량 최적화:
소프트웨어나 애플리케이션의 메모리 사용량을 최적화하여 시스템의 메모리 효율성을 향상시킨다. - 메모리 할당 최적화:
프로그램이나 서비스가 메모리를 효율적으로 사용하도록 알고리즘을 조정한다. - 프로세스 관리:
백그라운드에서 실행되는 불필요한 서비스나 프로세스를 최소화하여 메모리 사용을 줄인다.
- 메모리 클리닝:
- ZRAM
ZRAM은 리눅스 커널의 모듈 중 하나로, RAM의 일부를 압축된 메모리 영역으로 사용하여 가상의 스왑 공간을 생성한다. 기본적으로 ZRAM은 메모리에 저장된 데이터를 압축하여 실제 사용하는 메모리 양을 줄이는 방식으로 작동된다.
이렇게 함으로서 시스템은 더 많은 데이터를 RAM 내에 보관할 수 있게 되고, 실제 물리적 메모리가 부족할 때의 성능 저하를 어느 정도 완화할 수 있다.
- 사용 이유:
- 메모리 효율성 향상:
ZRAM을 사용하면 데이터 압축하여 RAM 내에 더 많은 정보를 저장할 수 있다.
이는 특히 RAM 용량이 제한적인 장치에서 유용하다. - 성능 개선:
기존의 디스크 기반 스왑 공간보다 훨씬 빠른 액세스 속도를 제공한다.
이는 시스템의 전반적인 반응 속도와 성능을 개선할 수 있다. - 디스크 소모 감소:
디스크 기반 스왑의 경우, 특히 SSD 와 같은 경우 지속적인 쓰기 작업으로 디스크 수명이 단축 될 수 있다.
ZRAM 은 이런 문제를 방지할 수 있다.
- 메모리 효율성 향상:
- 사용 이유:
sudo apt-get install zram-config
sudo vi /usr/bin/init-zram-swapping
#!/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))
728x90
반응형
'Firmware & Embedded > SBC' 카테고리의 다른 글
Pi Pinout Guide (0) | 2023.12.30 |
---|---|
Practical Exercise on Changing CPU Clock Speed (0) | 2023.12.29 |
Checking Pi Processor Information (0) | 2023.12.29 |
how to install ubuntu 20.04 for raspberry pi (0) | 2023.12.29 |
How to set a Raspberry Pi initial environment (0) | 2022.12.24 |