마리아 DB를 설정할 때 셋팅 옵션에 대해서 알아봅니다.
MariaDB 설정하기
cd /etc/my.cnf.d/
vi server.cnf
MariaDB가 정상적으로 설치가 되었다면, 위의 명령을 통해 MariaDB 설정파일을 접속할 수 있다.
이곳을 통해서, 서버 내의 MariaDB를 설정이 가능하다.
설정 목록
max_connection – 최대 동시 접족자 수
늘어날수록 메모리가 증가되고, 스케줄링 오버헤드가 증가된다.
connect_timout – Mysqld 서버가 패킷과 연결하기 위해 대기하는 시간기본값 10초
wait_timeout – 서버가 데이터 패킷과 연결된 후 연결을 유지하는 시간기본값 : 8시간,
max_allowed_packet – 허용 패킷 크기기본값 16MB이며, 최대값은 1GB이다.규모 이상으로 큰 File을 전달 받았을 때, MariaDB는 이를 거부한다.
thread_cache_size – connection당 스래드를 생성하고 해제할 때 메모리 할당크기기본값 8Cache Miss Rate가 높다면 높게 잡는다.
sort_buffer_size – 데이터를 정렬(ORDER BY)하기 위해 별도의 메모리를 할당하는 크기기본값 256K 또는 2MB크기가 클수록 느려질 수 있으므로, 적당한 SIZE 추천.
join_buffer_sizeMySqlTunner에서는 최소 1MB이상으로 제안
tmp_buffer_sizegroup by 시, 디스크를 사용하지 않고 임시 테이블을 만들기 위해 사용하는 메모리 크기
max_heap_table_size내부 메모리 임시 테이블이 너무 커지면 자동으로 테이블을 메모리에서 디스크 내 형식으로 변환
innodb_buffer_poll_size시스템 메모리의 65% – 75% 권장., 시스템 매모리가 8GB 일 경우 5 ~ 6GB.
innodb_log_file_size데이터베이스 충돌 발생 시 다시 실행하거나 이전으로 되돌릴 때 사용하는 메모리
innodb_flush_log_at_trx_commit : 상황에 따라 다름0은 성능 중심, 1은 안정성 중심
innodb_adaptive_flushing=ON 로그 발생량을 모니터링 하면서 버퍼 풀의 더티페이지를 디스크로 쓰는 작업 속도를 조절하게 함ON 이 아니면 더티페이지의 비율이 INNODB_MAX_DIRTY_PAGES_PCT가 넘어서는 순간 공격적인 디스크 쓰기 일어날 수 있음.
innodb_adaptive_heah_index=ONworkload와 충분한 buffer poll memory의 적절한 조합에서, 트랜잭션 특성이나 신뢰성에 위배되지 않는 선에서, InnoDB를 in-memory DB처럼 동작하게 함.
lower_case_table_name : Table 대, 소문자 구분하기0 : 대, 소문자 구분 / 1 : 대, 소문자 구분 안함
추가옵션
1. mariadb 서버를 내린다 (패키지 관리자에서 중지 하면 됩니다.)
2. /usr/local/mariadb10/etc/mysql/my.cnf 에 다음 설정을 추가하거나 수정한다
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
innodb_buffer_pool_size = 2048M
query_cache_limit = 1M
query_cache_size = 16M
query_cache_type = 1
skip-host-cache
skip-name-resolve
3. mariadb를 재시작한다.