mariadb, mysql - mysql 5.x my.cnf 설정 튜닝
페이지 정보

본문
my.cnf skip_name_resolve # 역DNS 검색 비활성 skip-external-locking # 외부(TCP/IP) 잠금비활성 max_connections = 300 # 최대 동시접속 연결 갯수 max_connect_errors = 100000 # 서버가 차단되기 전에 최대 연결 오류수 max_allowed_packet = 16M # 요청된 쿼리의 최대길이의 값 key_buffer_size = 1G # 인덱스를 메모리에 저장하는 버퍼의 크기 (myisam 을 사용할 경우 크게, table_open_cache = 512 # 각 쓰레드별 오픈할 테이블수 sort_buffer_size = 2M # 정렬에 필요한 버퍼의 크기 ORDER BY 또는 GROUP BY 연산 속도와관련 join_buffer_size = 4M # 적절한 조인 조건이 없어서, 조인이 테이블을 풀스캔 하기위해 사용하는 버퍼크기 read_buffer_size = 2M # 테이블 스캔에 필요한 버퍼크기 read_rnd_buffer_size = 8M # order by 절을 사용할 경우 디스크 사용을 피하기 위하여 사용하는 메모리 버퍼 크기 thread_cache_size = 16 # 재사용을 위해 캐쉬될 쓰레드의 수 read_rnd_buffer_size = 16M # 인덱스를 사용해 정렬할 수 없을 경우 정렬된 데이터를 메모리에 저장하여 디스크 검색을 피하기위한 랜덤 읽기 버퍼크기 myisam_sort_buffer_size = 128M query_cache_size = 1G # 쿼리 결과를 캐싱하기 위해 할당된 메모리크기 query_cache_limit = 4M # 이 변수 값보다 큰 값은 캐싱이 안됨, 설정저장가능한 최대 results크기(디폴트:1M) 보통 query_cache_size의 1~10%정도 설정 tmp_table_size = 128M # 메모리 내의 임시테이블 크기 초과시 디스크에 저장,group by 시 디스크를 사용하지 않고 임시 테이블을 만들기 위해 사용되는 메모리 크기 max_heap_table_size = 128M # MEMORY 테이블의 최대크기 thread_concurrency = 8 # 동시 쓰레드 갯수 back_log = 100 # 동시접속시 대기시킬수있는 커넥션 갯수 wait_timeout = 30 # 커넥션 최대 대기시간(초), 종료전까지 요청이 없이 기다리는 시간 ( TCP/IP 연결, Shell 상의 접속이 아닌 경우 ) slow-query-log = 1 # 슬로우 쿼리로그 활성화 long_query_time = 3 이 변수값보다 쿼리처리가 길게 걸린다면 슬로우쿼리 로그에 기록 log-slow-queries = /path_to_log/mysql-slow.log # 슬로우 쿼리 로그파일 경로 binlog_cache_size = 1M #binlogchase 사이즈 max_binlog_size = 500M # bin로그 max 사이즈 expire_logs_days = 10 #보관기간 # innodb innodb_data_home_dir = /Data # innodb 홈디렉터리 경로 innodb_data_file_path = ibdata1:1000M;ibdata2:1000M;ibdata3:1000M:autoextend # 파일명 : 초기용량 : 자동증가 : 최대사이즈 innodb_autoextend_increment = 100 #테이블 스페이스 자동 확장시 크기 # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high innodb_buffer_pool_size = 2G # innodb에서 사용할 메모리 양으로 전체 메모리의 50~80% 정도로 설정 innodb_additional_mem_pool_size = 20M # 데이터 디렉토리 정보와 내부 데이타 구조를 저장하는 메모리 풀의 크기 # Set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 100M # 로그 파일 사이즈로 버퍼풀 사이즈의 25% 정도로 설정 innodb_log_buffer_size = 16M # 리두 로그를 파일에 직접 기록하기 전 메모리상에서 버퍼링을 하는데 이를 위한 버퍼 사이즈 # Redo logs # 0 인 경우, MySQL 이나 OS가 갑자기 crash 된다면 최대 1초동안의 트랜잭션을 잃을 수 있다. # 1 인 경우, 안전하다. # 2 인 경우, OS가 갑자기 crash 된다면 최대 1초동안의 트랜잭션을 잃을 수 있다. 하지만 MySQL 장애시에는 이미 OS 영역으로 데이터는 넘어갔기 때문에 안전할 수 있다. # 각 값에 따라, 엄청난 성능을 보일 수 있다. # 많은 양의 log를 위하여, 해당값을 1에서 0으로 수정함에 따라 성능이 엄청 향상될 수 있다. # 단순 select용의 slave나, 최대 1초정도의 트랜잭션은 무시할 수 있는 서비스 혹은 log를 저장할 서버라면 해당값을 1에서 0으로 변경할 수 있다. # MySQL을 가장 빠르고 쉽게 튜닝할 수 있는 parameter 중의 하나이다. innodb_flush_log_at_trx_commit = 1 # 1=트랜젝션 실행할때마다 로그 파일에 기록되고 디스크 플러시가 실행 innodb_support_xa = OFF # 트렌젝션 two-phase commit 지원, 디스크 플러시 횟수를 줄여 성능항상 innodb_lock_wait_timeout = 50 # 롤백이 진행되기 전에 LOCK을 대기하는 시간(초) innodb_file_per_table = 1 # 테이블 단위로 테이블스페이스 할당, 활성시 확장자 .ibd 파일이생성됨 innodb_flush_method = O_DIRECT # #DB별 데이터 사용량 체크 mysql> select information_schema.tables.table_schema, sum(data_length) -> from information_schema.tables -> group by information_schema.tables.table_schema; #모니터링 및 초기화 명령어 mysql> show status - MySQL 데이타베이스의 현재 상황 mysql> show Processlist - MySQL 프로세스 목록 mysql> show variables - 설정 가능한 모든 변수 목록 mysql> flush logs - MySQL의 로그파일 초기화 mysql> flush status - MySQL 상태정보 초기화 mysql> flush thread - 쓰레드 캐시에 저장된 쓰레드 초기화 mysql> flush tables - MySQL에 캐싱된 테이블 초기화 mysql> flush privileges - 권한정보 재 설정
- 이전글MariaDB - DB 백업 및 복구하기 25.04.28
- 다음글[MYSQL] 구동 시 Active: failed (Result: exit-code) 해결법 25.01.07
댓글목록
등록된 댓글이 없습니다.