728x90
우분투에서 jemalloc을 설치하고 적용하는 방법
jemalloc은 기본 glibc malloc 대비 메모리 단편화(fragmentation)를 줄이고 멀티스레드 환경에서 성능을 개선하는 메모리 할당 라이브러리입니다.
특히 Redis, Nginx, DB 등에서 성능 개선 효과가 검증되어 널리 사용됩니다.
jemalloc의 장점
- 멀티스레드 환경에서 높은 성능
- 메모리 단편화 감소
- 메모리 사용량 절감
- 락 경합(lock contention) 최소화
1. jemalloc 설치
우분투에서는 패키지로 간단하게 설치할 수 있습니다.
sudo apt-get update
sudo apt-get install -y libjemalloc-dev libjemalloc2
2. 설치 확인
설치 후 시스템에 라이브러리가 정상 등록되었는지 확인합니다.
ldconfig -p | grep libjemalloc
$ ldconfig -p | grep libjemalloc
libjemalloc.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libjemalloc.so.2
libjemalloc.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libjemalloc.so
3. 라이브러리 경로 확인
시스템에서 참조하는 라이브러리 경로도 확인해두는 것이 좋습니다.
$ cat /etc/ld.so.conf.d/x86_64-linux-gnu.conf
# Multiarch support
/usr/local/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
4. jemalloc 적용 방법
방법 1 : 특정 프로세스에만 적용 (권장)
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 nginx
방법 2: 사용자 환경에 적용 (~/.bashrc)
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2' >> ~/.bashrc
변경 사항 적용
source ~/.bashrc
해당 사용자 세션에서 실행되는 모든 프로세스에 적용됨
방법3: systemd 서비스에 적용 (실무 권장)
- 서비스 단위로 적용하는 것이 가장 안전합니다.
sudo systemctl edit nginx
내용 추가
[Service]
Environment="LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2"
적용
sudo systemctl daemon-reexec
sudo systemctl restart nginx
5. 적용 여부 확인
실행 중인 프로세스가 jemalloc을 사용하는지 확인
cat /proc/<PID>/maps | grep jemalloc
또는
lsof -p <PID> | grep jemalloc
6. jemalloc 튜닝 옵션
환경 변수로 세부 동작을 조정할 수 있습니다.
export MALLOC_CONF="background_thread:true,dirty_decay_ms:5000,muzzy_decay_ms:5000"
주요 옵션
- background_thread : 백그라운드 메모리 정리 활성화
- dirty_decay_ms : 해제된 메모리 반환 시간
- muzzy_decay_ms : OS 반환 정책
참고URL
- jemalloc : memory allocator
- Ubuntu packages : libc6-dbg
libc6-dbg
728x90
'리눅스' 카테고리의 다른 글
| [WIP] 우분투에 Prometheus와 Grafana 그리고 Node Exporter를 설치하고 구성하는 방법 (0) | 2026.04.01 |
|---|---|
| [WIP] 우분투에서 Prometheus Node Exporter를 설치하고 실행하는 방법 (0) | 2026.04.01 |
| [WIP] Docker Compose를 사용하여 cAdvisor를 설정하는 방법 (0) | 2026.04.01 |
| [WIP] 우분투에서 APT 저장소의 URL을 변경하는 방법 (자동화 스크립트 포함) (0) | 2026.03.31 |
| [WIP] 우분투에서 APT 저장소를 변경하는 방법 (0) | 2026.03.31 |