У меня в настоящее время есть экземпляр (AWS) DB.M1.LARGE
(7,5 ГБ, 2 ВЦП, 40 ГБ SSD, MySQL 5.6.34), только 4 ГБ пространства используется с менее чем 100 базами данных.
По какой-то причине у меня высокий InnoDB buffer usage
, близкий к 98% и низкий Freeable Memory
, менее 600 МБ.
Текущее значение innodb_buffer_pool_size
составляет 5,7 ГБ
После некоторых исследований в интернете я обнаружил, что в этом запросе перечислены все индексы, сгруппированные и упорядоченные по размеру.
select table_name as Table_Name, index_name as Index_Name,
count(*) as Page_Count, sum(data_size)/1024/1024 as Size_in_MB
from information_schema.innodb_buffer_page
group by table_name, index_name
order by Size_in_MB desc;
Это мой результат для запроса, и я не совсем понимаю, почему существует такое количество пространства, используемого для таблиц NULL и индекса NULL, и если это проблема, и причина, почему Freeable Memory
такой низкий .
Список индексов
Это графики последних 2 недель с консоли RDS
Графики мониторинга RDS
Обновление после нового запроса innodb_buffer_page
Основываясь на предложении Билла, я запускаю этот новый запрос, и вот результаты:
select page_type, page_state, table_name, index_name,
count(*) as Page_Count, sum(data_size)/1024/1024 as Size_in_MB
from information_schema.innodb_buffer_page
group by page_type, page_state, table_name, index_name
order by Size_in_MB desc;
Начало запроса:
Первая часть результата запроса
Между этими двумя снимками все page_type
равны INDEX
, а все page_state
равны FILE_PAGE
Вторая часть результата запроса