Максимальное значение transaction_buffer

#singlestore

#одиночное хранилище

Вопрос:

Какое максимальное значение можно установить для transaction_buffer внутри memsql cnf? Я предполагаю, что существует корреляция с оперативной памятью, выделенной на сервере. Каждый из моих листов имеет 32 ГБ, и на данный момент для transaction_buffer установлено значение 0. Мы прошли этап проектирования в нашем кластере, и мы хотели бы выполнить некоторую настройку производительности, и один параметр, который необходимо настроить соответствующим образом, — это этот.

Ответ №1:

Размер transaction_buffer — это объем памяти, зарезервированный для каждого раздела базы данных, т.Е. Каждому конечному узлу потребуется размер transaction_buffer * разделов на лист * количество памяти баз данных. По умолчанию используется 128 МБ, и в целом этого должно быть достаточно.

Ответ №2:

По сути, это балансирующий акт — данные в transaction_buffer будут существовать в памяти перед записью на диск. Значение transaction_buffer, равное 0, может сэкономить вам немного памяти, но оно не в полной мере использует скорость нахождения в памяти. Если у вас много баз данных, которые обновляются нечасто, низкий transaction_buffer может быть правильным балансом, поскольку это стоимость для каждой базы данных (учитывая, что каждый раздел сам по себе является базой данных).

Transaction_buffer также может быть полезен для вас как карта «выхода из тюрьмы бесплатно», поскольку, если ваша рабочая нагрузка становится все более и более интенсивной, может возникнуть ситуация, когда ваша ОС слишком часто убивает MemSQL, чтобы уменьшить потребление памяти. Как только вы попадаете в такой порочный круг, перезапуск с уменьшенным буфером транзакций может уменьшить нагрузку на память настолько, чтобы система не была отключена от ООМ достаточно долго для устранения неполадок и устранения проблемы с вашей стороны.

В конце концов, это может стать адаптивным, и вы останетесь без этого простого способа получить пространство для маневра. Вот почему важно убедиться, что значение maximum_memory достаточно низкое, чтобы ваша система не начала выполнять ООМ-процессы уничтожения. https://docs.memsql.com/docs/memory-management