mysql 모니터링 중 innoDB Buffer Usage가 100%를 유지하는 현상이 발생
아래 공식대로 계산 후 innodb_buffer_pool_size 를 변경
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_data'; -- IBPDataPages SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_total'; -- IBPTotalPages SHOW GLOBAL STATUS LIKE 'Innodb_page_size'; -- IPS
IBPPctFull = IBPDataPages * 100.0 / IBPTotalPages
IBPctFull이 95%이상일 경우 DB 서버 RAM의 75%까지 innodb_buffer_pool_size를 설정.
IBPctFull이 95%이하일 경우 IBPSize = IPS X IBPDataPages / (1024*1024*1024) X 1.05 의 계산 값을 innodb_buffer_pool_size로 설정.
[참조] - http://dba.stackexchange.com/questions/19164/what-to-set-innodb-buffer-pool-and-why
출처: https://gihyun.com/16 [Note]
현재rds 사양기준으로 r5 2X large
aws 자동계산
64GB / 46GB -> 71.8% 할당
innodb_buffer_pool_size 사용률 --> 98.7%
innodb_buffer_pool_size 적정한 사용률은 ?
적정사용률을 유지하기 위해
인스턴스사양을 한단계 늘리는것과
innodb_buffer_pool_size 를 75% 이상이 되도록 수동으로 설정하는 것 중 권장되는 방법은 무었일까?
-- inodb_buffer_pool_size 계산방법
show global status like 'Innodb_buffer_pool_pages_data'; -- IBPDataPages 2976794
show global status like 'Innodb_buffer_pool_pages_total';-- IBPTotalPages 3014656
SHOW GLOBAL STATUS LIKE 'Innodb_page_size'; -- IPS 16384
사용률 95% 이상인경우 : 전체DB서버 RAM의 75% 유지하도록 Innodb_page_size 할당
select 2976794 * 100.0 / 3014656 as IBPPctFull from dual ; -- 98.7 %
show global variables like 'innodb_buffer%' ; -- 46GB (기존) 71.8% 할당된상태
사이즈변경함 : Innodb_page_size (53392123904) 49.7GB 할당 --> 사용률 98.7 % --> 90.8% 유지
사용률 95% 이하인경우
select 16384 * 2976794 / (1024*1024*1024) * 1.05 ; -- Innodb_page_size 할당 47.69
'MySQL-MariaDB' 카테고리의 다른 글
Hash Join (0) | 2020.08.29 |
---|---|
MaraDB 지식베이스 - table_open_cache 최적화 (0) | 2020.08.23 |
MySQL 진단시 고려할 부분 (0) | 2020.08.22 |
MySQL 테스트 데이터복제 (0) | 2020.08.17 |
MySQL - Limit 에 대하여... (0) | 2020.06.26 |