Mysql DB엔진 변경 후 문제 입니다.
안녕하세요~ 초보 개발자 입니다.
현재 운영하던 mysql 엔진을 InnoDB 로 변경 하였습니다.
속도 저하가 너무 심해서 문제 입니다.
my.cnf 파일 셋팅을 했는데, 셋팅 값이 적용이 안되는 느낌입니다.
설정 파일 한번 봐주시고 도움 부탁드립니다.
[mysqld] #datadir=/var/lib/mysql datadir =/var/lib/mysql/idb socket=/var/lib/mysql/mysql.sock user=mysql
# Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1
# Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: # symbolic-links=0
default-storage-engine=InnoDB
#default-table type default-table-type=InnoDB
#character-set character-set-server = utf8 default-character-set = utf8 collation-server = utf8_general_ci init-connect = SET collation_connection = utf8_general_ci init-connect = SET NAMES utf8
character-set-client-handshake = FALSE skip-character-set-client-handshake
skip-name-resolve
#max_connections = 300 wait_timeout = 300
#innodb setting innodb_data_home_dir = /var/lib/mysql/idb innodb_data_file_path=ibdata1:1500M;ibdata2:1500M;ibdata3:1500M;ibdata4:1000M:autoextend:max:2000M innodb_file_per_table = 0 innodb_log_group_home_dir = /var/lib/mysql/idb innodb_log_arch_dir = /var/lib/mysql/idb innodb_buffer_pool_size = 15G innodb_additional_mem_pool_size = 20M innodb_log_file_size = 256M innodb_log_buffer_size = 2M innodb_flush_log_at_trx_commit = 2 innodb_lock_wait_timeout = 50 innodb_flush_method = O_DSYNC
innodb_io_capacity = 2000 innodb_read_io_threads = 64 innodb_thread_concurrency = 0 innodb_write_io_threads = 64
max_connections = 1000
#slow_query_log = 1 #slow_query_log_file = /var/log/mysql/mysql-slow.log #long_query_time = 5 #log_slow_rate_limit = 1 #log_slow_verbosity = query_plan #log_slow_admin_statements #log_queries_not_using_indexes = on
log-slow-queries = /var/log/mysql/mysql-slow.log long_query_time= 3
쿼리로 innodb 셋팅값 불렀을때 입니다.
mysql> SHOW VARIABLES LIKE 'innodb%'; +-----------------------------------------+------------------------+ | Variable_name | Value | +-----------------------------------------+------------------------+ | innodb_additional_mem_pool_size | 1048576 | | innodb_autoextend_increment | 8 | | innodb_buffer_pool_awe_mem_mb | 0 | | innodb_buffer_pool_size | 8388608 | | innodb_checksums | ON | | innodb_commit_concurrency | 0 | | innodb_concurrency_tickets | 500 | | innodb_data_file_path | ibdata1:10M:autoextend | | innodb_data_home_dir | | | innodb_adaptive_hash_index | ON | | innodb_doublewrite | ON | | innodb_fast_shutdown | 1 | | innodb_file_io_threads | 4 | | innodb_file_per_table | OFF | | innodb_flush_log_at_trx_commit | 1 | | innodb_flush_method | | | innodb_force_recovery | 0 | | innodb_lock_wait_timeout | 50 | | innodb_locks_unsafe_for_binlog | OFF | | innodb_log_arch_dir | | | innodb_log_archive | OFF | | innodb_log_buffer_size | 1048576 | | innodb_log_file_size | 5242880 | | innodb_log_files_in_group | 2 | | innodb_log_group_home_dir | ./ | | innodb_max_dirty_pages_pct | 90 | | innodb_max_purge_lag | 0 | | innodb_mirrored_log_groups | 1 | | innodb_open_files | 300 | | innodb_rollback_on_timeout | OFF | | innodb_support_xa | ON | | innodb_sync_spin_loops | 20 | | innodb_table_locks | ON | | innodb_thread_concurrency | 8 | | innodb_thread_sleep_delay | 10000 | | innodb_use_legacy_cardinality_algorithm | ON | +-----------------------------------------+------------------------+
innodb_buffer_pool_size 값등이 전혀 적용이 안되는것 같습니다.
참고로 서버 메모리가 64G 이여서 15G 로 설정 하였습니다.
또 다른 특이 사항은 그전 운영일때는
datadir=/var/lib/mysql 여기 였고,
InnoDB 변경후 datadir=/var/lib/mysql/idb 로 바깠습니다.
때문에, /var/lib/mysql 디렉토리에 그전에 사용하던
ibdata1, ib_logfile0, ib_logfile1 파일과, mysql, 데이터베이스폴더 가 아직 존재 합니다.
(무서워서 삭제는 못했습니다.)
부디 초보에게 가르침을 부탁드립니다.
답변 2개
답변을 작성하려면 로그인이 필요합니다.
로그인
/var/lib/mysql 폴더 안에 있는 mysql.sock 파일을 제외 하고 전부 백업 후 삭제 해도 될까요?