Сведения о вопросе

Sadijon

16:03, 1st July, 2020

Теги

membership    

Memcached предел куска

Просмотров: 494   Ответов: 1

Почему существует жестко заданный предел куска (.5 Мег после сжатия) в memcached ? Кто-нибудь перекомпилировал их, чтобы поднять его? Я знаю, что не должен посылать большие куски, как это вокруг, но эти дополнительные тяжелые куски случаются для меня время от времени и сеют хаос.



  Сведения об ответе

screen

18:03, 1st July, 2020

Этот вопрос раньше был в официальном FAQ

Каковы некоторые ограничения в memcached, которые я могу поразить? (Машина Обратной Дороги)

Приводить цитаты:

Простые ограничения, которые вы, вероятно, увидите с memcache, являются ключом и ограничения по размеру элемента. Количество ключей ограничено 250 символами. Накопленные данные не может превышать 1 мегабайт в размере, так как это самый большой типичный размер плиты."

FAQ теперь был пересмотрен, и теперь есть два отдельных вопроса, охватывающих это:

Какова максимальная длина ключа? (250 байт)

Максимальный размер ключа составляет 250 символов. Примечание это значение будет равно меньше, если вы используете клиент "prefixes" или аналогичные функции, так как префикс закрепляется на лицевой стороне оригинального ключа. Более короткие ключи являются как правило, лучше, так как они экономят память и используют меньшую пропускную способность.

Почему размер элементов ограничен 1 мегабайтом?

Ах, это популярный вопрос!

Короткий ответ: из-за того, как работает алгоритм распределителя памяти.

Длинный ответ: механизм хранения памяти Memcached (который будет подключаемый / настраиваемый в будущем...), использует новый подход к памяти управление. Память разбивается на слябы куски разного размера, начиная с минимального числа и возрастая на факториал до максимально возможное значение.

Допустим, минимальное значение равно 400 байтам, а максимальное-1 мегабайт, а факториал равен 1.20:

плиты 1 - 400 байт плиты 2 - 480 байт сляба 3 - 576 байт ... и т.д.

Чем больше плита, тем больше зазора между ней и стеной. предыдущая плита. Таким образом, чем больше максимальное значение, тем менее эффективен память хранения есть. Memcached также должен предварительно выделить некоторую память для каждая существующая плита, поэтому установка меньшего факториала с большим максимальное значение потребует еще больших накладных расходов.

Есть и другая причина, по которой ты не захочешь этого делать... Если мы будем ... говоря о веб-странице, вы пытаетесь сохранить / загрузить значения такой большой, ты, наверное, делаешь что-то не так. При таком размере он будет для загрузки и распаковки структуры данных требуется значительное количество времени в память, и ваш сайт, скорее всего, не будет работать очень хорошо.

Если вы действительно хотите хранить предметы размером более 1 МБ, вы можете перекомпилируйте memcached с измененным значением slabs.c:POWER_BLOCK или используйте неэффективный malloc / свободный бэкэнд. Другие предложения включают в себя: база данных, MogileFS и т.д.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться