2011-07-04 3 views
0

최근에 새 전용 MySQL 시스템이 있습니다. 이제는 잘 돌아가고 있지만 때로는 다음과 같은 쿼리에 의해 속도가 느려지는 경우가 있습니다. tmp 테이블에 복사 중. 무작위로 발생하는 것 같습니다.InnoDB 최적화 팁 - mysql

이 기계에는 12GB DDR3 램이 있으며 RAID10 설정에서 (4x 15k RPM SAS 드라이브) 실행됩니다.

이 기계는 각각 1에서 8GB 사이의 5 개의 데이터베이스를 호스트합니다. 읽기/쓰기 : 66 %/34 %

다음은 my.cnf 파일입니다. 누구나 성능 최적화 팁이 있다면, 나는 그것을 듣고 싶습니다.

[mysqld] 
skip-name-resolve 
datadir=/var/lib/mysql 
#socket=/tmp/mysql.sock 
log-error=/var/log/mysqld.log 
old_passwords=0 
max_connections = 1500 
table_cache = 1024 
max_allowed_packet = 16M 
sort_buffer_size = 2M 
thread_cache = 8 
thread_concurrency = 32 
query_cache_size = 0M 
query_cache_type = 0 
default-storage-engine = innodb 
transaction_isolation = REPEATABLE-READ 
tmp_table_size = 256M 
long_query_time = 3 
log_slow_queries = 1 
innodb_additional_mem_pool_size=48M 
innodb_flush_log_at_trx_commit=2 
innodb_log_buffer_size=32M 
innodb_buffer_pool_size=6G 
innodb_autoinc_lock_mode=2 
innodb_io_capacity=500 
innodb_read_io_threads=16 
innodb_write_io_threads=8 
innodb_buffer_pool_size = 5000M 
innodb_lock_wait_timeout = 300 
innodb_max_dirty_pages_pct = 90 
innodb_thread_concurrency =32 
+0

느린 쿼리 로그를 확인하여 느린 쿼리를 확인하십시오. innodb_buffer_pool_size가 2 번 설정되어 있습니다. MySQL이이 머신에서 실행되는 유일한 데몬이라면, 버퍼 풀을 10G로 설정하십시오 (일반적으로 사용 가능한 RAM의 80 %로 설정 됨). –

+0

이중 항목을 지적 해 주셔서 감사합니다. 느린 쿼리 로그를 사용할 수 있지만 느린 로그가 저장된 위치를 찾을 수 없습니다. –

+0

이것도 확인하십시오 : http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/ –

답변

0

나는 해결책을 찾은 것 같습니다. max_heap_table_size was not set. 이 제한된 tmp_table_size. 이제 512m에 두 값을 설정했습니다.