== KLDP.ORG 디비서버 == *현재 주요 설정 {{{ key_buffer = 128M max_allowed_packet = 4M table_cache = 1024 sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 2M join_buffer_size = 2M myisam_sort_buffer_size = 8M thread_cache = 20 thread_stack = 126976 max_connections = 100 max_heap_table_size = 512M tmp_table_size = 512M max_tmp_tables = 20 query_cache_type = 1 query_cache_size = 512M query_cache_limit = 128M innodb_buffer_pool_size = 1536M innodb_additional_mem_pool_size = 64M innodb_log_file_size = 128M innodb_log_buffer_size = 16M innodb_log_files_in_group = 2 }}} *설정 변경 계획 *innodb_buffer_pool_size를 2048M로 늘린다. 현재 buffer를 거의 풀로 쓰고 있음. 거의 모든 테이블이 innodb로 되어있음. 추가적으로 [http://mysqldatabaseadministration.blogspot.com/2007/01/increase-innodblogfilesize-proper-way.html]를 참고해 innodb_log_file_size도 innodb_buffer_pool_size/4 정도로 변경해야함. *시도해본 변경값 *query_cache_size를 많이 늘렸으나 일부만 사용하고 남는 공간이 많았음. 대부분의 쿼리들이 단일 row를 가져오는 것들이라 캐싱이 잘 안되거나 캐시메모리가 단편화 되었을 가능성이 있음. 무거운(FULL JOIN이거나 임시테이블을 만드는)쿼리들이 임시테이블에서 돌기 때문일까? *sort,read,read_rnd,join등의 buffer값들을 늘려도 단일 처리 상황에서는 효과가 없음. 오히려 줄여도 처리 속도 느려지지 않았음. *innodb_log_file_size 변경 방법 {{{ 1. shutdown mysql server 2. make backup of data and log files 3. remove InnoDB log files 4. set new value for innodb_log_file_size in my.cnf 5. start mysqld 6. check error logs to ensure everything went fine. }}}