컴퓨터 / Computer

MariaDB 메모리 누수 잡기 ( Memory Leak Issue ) - jemalloc



MariaDB 10.4 버전대에서 메모리 관련하여 문제가 있다 한다. 쿼리가 많으면 메모리를 엄청 잡아 먹는데 그 후로 갱신이 되지 않는다. 원인을 찾아 보니 malloc 함수 문제라는 이야기가 있어 그걸 아래 절차대로 교체를 해 보았다.




1. 보유 중인 malloc 확인


   mysql> SHOW VARIABLES LIKE 'version_malloc_library';


MariaDB [(none)]> SHOW VARIABLES LIKE 'version_malloc_library';

+------------------------+--------+

| Variable_name          | Value  |

+------------------------+--------+

| version_malloc_library | system |

+------------------------+--------+

1 row in set (0.001 sec)


version_mallloc_library 를 확인해 보면 system 이라고 나온다. 



2. 여러 제안이 있었지만 jemalloc을 쓰기로 했다. 아래 명령어로 설치를 한다.


  yum install jemalloc





3. library 를 설치했으면 설정 파일에 넣는다. 


  파일 수정 /etc/systemd/system/mariadb.service.d/*.conf  ( mariadb.service.d/에 conf 파일이 하나 있다.)


 아래 항목을 추가한다.


 Environment="LD_PRELOAD=/usr/lib64 /libjemalloc.so.1"


시스템마다 저 libjemalloc.so.1 위치가 다르니 위치 확인을 반드시 한 후 정확한 폴더 명을 적어줘야 한다. 




4. 시스템 적용


아래와 같이 입력한다. 


  systemctl stop mariadb.service && systemctl daemon-reload && systemctl start mariadb.service


경우에 따라서는 daemon이 안 뜨는 경우도 있는데, 그런 때는 systemctl status mariadb.service 명령어를 입력하여 오류 코드를 확인해야 한다.



5. 확인 : 아래와 같이 결과가 나오면 성공이다.



# pmap `pidof mysqld` | grep jemalloc

00007f7f114a8000    196K r-x-- libjemalloc.so.1

00007f7f114d9000   2044K ----- libjemalloc.so.1

00007f7f116d8000      8K r---- libjemalloc.so.1

00007f7f116da000      4K rw--- libjemalloc.so.1








참고 

 - https://asrarabukhair.com/2020/07/15/mariadb-10-4-x-memory-footprint-issue/

 - https://blog.daum.net/keydream/14636167





Comments

공유지기 2022.03.28 01:43
더불어서  MariaDB의 server.conf 를 아래와 같이 수정했다.


innodb_buffer_pool_size = 12G
innodb_buffer_pool_instances = 8
innodb_flush_log_at_trx_commit = 0
innodb_log_files_in_group = 3
innodb_thread_concurrency = 12
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_io_capacity = 200
key_buffer_size = 32M
여름용 목토시 마스크 리플러스 이어 멀티스카프
남성 분리수납 확장형 여행백팩 기내용 출장용 BK102
더블 지퍼 이너백 백인백 파우치 속가방 멀티 다용도
방수 슬리퍼 버클신발 남자슈즈 여름 여행신발
빠띠라인 엔틱 황동 USB전용 탁상선풍기
이케아YUPPIENALLE 위우피에날레 휴대폰홀더 열쇠고리
갤럭시 A32 달토끼 홀로그램 미러범퍼케이스
에펠 20인치 전자식 듀얼헤드 공업용 업소용 대형 리모컨 선풍기 UEF-2320 사무실 헬스장 공장 미용실
칼라나무목판액자(블루)
이케아 GLASIG글라시그 미니양초홀더 유리5x5cm 5개입
이케아 ENUDDEN 에누덴 문걸이행거
(리버퍼니쳐) 클라인 원목 슬라이딩 틈새장 200 (착불)
(꿈쟁이) 에코팟-메시지콩
3M 일반 막대걸레 표준형 바닥청소 3165
902s ARMOUR 모자처럼 착용하는 헬멧(AR10)
여성 하프집업 베이직 아노락 세트

미세모 미니 틈새 먼지제거 브러쉬 투명보호캡 포함 자동차 실내 청소솔
칠성상회
3M 몰딩 양면테이프 회색 8mm x 11M
바이플러스

맨위로↑