Сколько памяти должно быть зарезервировано для хранения 100 ГБ данных

У меня есть 5 листовых узлов, каждый из которых имеет настройку

maximum_memory = 51200m
maximum_table_memory = 40960m
So total leaf table memory = 200GB
and total  Memsql Memmory = 250 GB

Я пытаюсь загрузить 100 ГБ данных TPCH, но не могу этого сделать. Не удалось загрузить таблицу LineItem. Его счет равен 0.

Ниже приведена таблица состояния операций memsql. Он варьируется от 90 ГБ до 108 ГБ для памяти листовых таблиц.

введите здесь описание изображения

введите здесь описание изображения

Когда я попытался снова загрузить таблицу LINEItem размером 74 ГБ, вкладка состояния показывает, что memsql использует всю доступную память введите здесь описание изображения

Таким образом, даже после установки более чем двойного объема памяти (200 ГБ) Memsql по-прежнему не может загрузить данные объемом 100 ГБ. Что здесь не так? Похоже, мне не хватает некоторых очевидных параметров. Пожалуйста, помогите мне правильно настроить.


person Kishor Bachhav    schedule 17.12.2015    source источник


Ответы (1)


Для хранения данных в таблице rowstore обычно требуется больше места, чем исходный размер данных, из-за дополнительного пространства, занимаемого индексами, накладными расходами и т. д. Это относится к MemSQL и другим базам данных. Например, чтобы уменьшить использование пространства, рассмотрите возможность удаления некоторых индексов в вашей схеме. Или вы также можете проверить, используете ли вы правильные типы данных, например. использование bigint вместо int также приведет к пустой трате места.

Вы можете оценить, сколько места требуется, исходя из того, сколько места MemSQL фактически использует для ваших данных — из информации, которую вы разместили выше, похоже, что MemSQL использует около 200 ГБ для хранения необработанных данных объемом 74 ГБ, так что это умножается до ~ 270 ГБ для 100 ГБ необработанных данных. данные.

Для получения более подробной информации о том, для чего MemSQL использует память, вы можете просмотреть отдельный конечный узел MemSQL в Ops на странице кластера и посмотреть информацию об использовании памяти.

person Jack Chen    schedule 17.12.2015