Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / table engine=memory съедают всю имеющеюся оперативную память / 5 сообщений из 5, страница 1 из 1
18.11.2019, 20:49
    #39890801
devi409
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
table engine=memory съедают всю имеющеюся оперативную память
Имеется достаточно мощный сервер.
16 ядер 128 ГБ оперативной памяти
База данных занимает 400 ГБ на жестком диске
для ускорения некоторых запросов решено было использовать таблицы в памяти engine=memory
Таблиц суммарно около 200 шт. общим объемом примерно на 10 ГБ вместе с индексами.
Когда сайт работает в стандартном своем режиме, то использование памяти не превышает и половины 64 ГБ.
Но когда создаются таблицы в памяти за один раз 200 штук то это съедает 15 ГБ оперативной памяти и составляет примерно 79 ГБ.
если теперь сделать TRUNCATE или DROP таблиц в памяти то использование памяти не уменьшается. Логично было бы предположить что память выделенная для таблиц должна была освободиться, но к сожалению свободной памяти на сервере без таблиц столько же сколько после их удаления.
Теперь возьмем и снова создадим эти же 200 таблиц повторно после предыдущего DROP. Mysql еще раз скушает 15 ГБ и общий занимаемый объем 79+15=94 ГБ. Если же теперь снова удалить ранее созданные таблицы и уже в третий раз создать их то занятая память на сервере будет 109 ГБ и сайт начинает притормаживать из за того, что некоторые данные потихоньку начинают залазить в swap. ну и последний раз запускаем удаление и создание и сайт уходит в даун.

Подскажите в чем может быть причина не освобождения выделенной памяти для memory таблиц? Может командой какой-нибудь можно пересчитать используемую память и освободить ее?
...
Рейтинг: 0 / 0
18.11.2019, 21:54
    #39890819
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
table engine=memory съедают всю имеющеюся оперативную память
devi409,

Точная версия MySQL ?
...
Рейтинг: 0 / 0
18.11.2019, 22:11
    #39890827
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
table engine=memory съедают всю имеющеюся оперативную память
devi409,

Чему равны параметры tmp_table_size и max_heap_table_size ?
...
Рейтинг: 0 / 0
19.11.2019, 05:45
    #39890862
devi409
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
table engine=memory съедают всю имеющеюся оперативную память
Версия 5.7.28-31-log
tmp_table_size=256МБ
max_heap_table_size=256БМ

Но эти параметры я специально переопределяю так как ошибка возникала что таблица полная.
поэтому для одного подключения выполнял команды
SET tmp_table_size=1024 * 1024 * 1024
SET max_heap_table_size =1024 * 1024 * 1024

получается что каждая по 1ГБ
думаете в этом проблема?
...
Рейтинг: 0 / 0
19.11.2019, 08:04
    #39890877
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
table engine=memory съедают всю имеющеюся оперативную память
devi409
думаете в этом проблема?
Нет, больше похоже на баг.
Как вариант, можно попробовать на других версиях, в т.ч. в ветке 8.0.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / table engine=memory съедают всю имеющеюся оперативную память / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]