# my.cnf 메모리 설정
MariaDB의 메모리 공간은 글로벌 메모리 영역과 로컬 메모리 영역으로 구분된다
글로벌 메모리 영역은 스레드가 공유해서 사용되는 공간이다
DB 최초 기동시 메모리를 최소한만 사용하다가 설정된 값까지 증가되고
증가한 이후 메모리룰 반환하지 않고 설정된 값 이내에서 사용된다
글로벌 메모리 = innodb_buffer_pool_size + key_buffer_size + innodb_log_buffer_size
설정 | 디폴트 | 설명 |
innodb_buffer_pool_size | 128MB | innodb가 data와 index를 캐시하는 곳 (물리적 메모리의 50%정도) |
key_buffer_size | 128MB | MyISAM의 인덱스를 메모리에 저장하는 버퍼의 크기 |
innodb_log_buffer_size | 16MB | 로그파일을 디스크에 쓰기위한 버퍼크기 |
로컬 메모리 영역은 각 스레드별로 사용되며 공유되지 않는 공간이다
로컬 메모리 = ( tmp_table_size + sort_buffer_size + read_buffer_size + read_rnd_buffer_size + join_buffer_size + thread_stack + binlog_cache_size) * max_connections
설정 | 디폴트 | 설명 |
tmp_table_size |
16MB | 쿼리가 수행될때 사용되는 임시테이블 크기, 해당 설정 넘어가면 디스크에 write 됨. |
sort_buffer_size | 2MB | 정렬에서 사용되는 메모리 |
read_buffer_size | 131072 | 풀스캔에서 사용되는 메모리 |
read_rnd_buffer_size | 256kB | 정렬 후, read에서 사용되는 메모리 |
join_buffer_size | 256kB | index 사용하지 않는 조인에서 사용되는 메모리 |
thread_stack | 299008 | 스레드별 스텍 크기 |
binlog_cache_size | 32768 | 트랜잭션의 bin log를 캐시로 들고 있음 |
max_connections | 151 | 최대 동시 접속 수 |
총 메모리 = 글로벌 메모리 영역 + 로컬 메모리 영역 + Mariadb 기본 기동(350MB) + performance_schema data(150MB) + OS / 파일 버퍼링 공간(전체 메모리의 약 10%) 를 고려할 것
[참고자료]
https://www.webcomand.com/docs/admin_guide/configuration/mysqlmariadb/index.html
https://support.skdt.co.kr/ko/support/solutions/articles/42000064656--cloud-z-db-mariadb%EC%9D%98-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%84%A4%EC%A0%95%EC%9D%84-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%B4%EC%95%BC-%ED%95%98%EB%82%98%EC%9A%94-
MariaDB 공식문서
To be continued.........
Made by 꿩
'Database > RDBMS' 카테고리의 다른 글
[MySQL] MySQL 5.7 -> 8.0 업그레이드 이슈 (0) | 2024.07.01 |
---|---|
[Oracle] Oracle express 21c 설치 (feat. Rocky 8.9) (0) | 2024.03.16 |
[PostgreSQL] Architecture (0) | 2022.03.01 |
[MariaDB] mariabackup 백업 & 복구 (0) | 2022.02.15 |
[MySQL/MariaDB] 계정 정보 추출 (0) | 2021.11.11 |