Arhn - архитектура программирования

Планирование емкости размера кэша

Как выполнить планирование емкости кеша - например. сколько оперативной памяти выделить для ehCache, memcache или dynacache? Существует ли стандартная отраслевая формула?

Например, У меня около 60 000 записей в базе данных. Это данные компании, которые содержат название компании, описание и код компании. Я хочу реализовать функцию typeahed с помощью jQuery и хочу сохранить информацию о названии этой компании в кеше.

Каким должен быть идеальный размер кэша? Я знаю, что размер кеша ограничен объемом доступной свободной памяти, но интересно узнать конкретный способ? или это не метод проб и ошибок, когда вы начинаете с некоторого размера и тестируете, строите график и продолжаете регулировать размер кэша.

Обновить

Идентификатор компании – CHAR(9)

Название компании - ВАРЧАР2 (250 СИМВОЛОВ)

Описание компании - NVARCHAR2(1000 CHAR)

02.10.2011

  • Какова максимальная длина каждого поля данных компании? 02.10.2011
  • Я обновил вопрос, указав дополнительные сведения о длине столбцов. 02.10.2011
  • Я бы рекомендовал использовать INT вместо CHAR (9) для идентификатора компании 02.10.2011

Ответы:


1

1) Если у вас есть выделенный кеш-сервер, вам не нужно беспокоиться о том, сколько памяти вам нужно использовать. Вы можете использовать максимальное количество доступной свободной памяти (или близкое к этому) и позволить ему творить чудеса.

2) Если сервер кэширования совпадает с вашим веб-сервером, вам нужно будет указать, сколько вы разрешаете использовать memcached (dynacache или другой). С моей точки зрения, идеального размера кеша не существует. Все зависит от того, сколько памяти у вашего сервера, сколько данных вы должны поместить в кеш и т. д. Пока ваша память правильно балансирует между кэшированием и веб-сервером, все в порядке.

В этом случае у вас есть чуть менее 100 МБ данных, которые нужно хранить в кеше. В зависимости от того, сколько у вашего сервера, он очень маленький, но вам всегда придется думать, насколько растут данные, а также нужно ли вам добавлять дополнительные данные (например, клиенты, продукты и т. д.). Так что если вы поставите меньше, чем вам нужно, вам придется остановить службу, увеличить значение разрешенной памяти, запустить службу.

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

Быстрый пример:

  • 1 сервер (кеш и веб-сервер) с 4G общей памяти.
  • Ресурсы системы и процессов, включая cronjob, базу данных и т. д.: 3G
  • 60 000 клиентов общим объемом 100 Мб (всегда используйте больше фактического размера на всякий случай)

В данном примере осталось 1G памяти (примерно). Не рекомендуется подсчитывать всю оставшуюся сумму, так как у вас будет достаточно для вашей системы. Я бы сказал, что использование 384 МБ или меньше для вашего кеша будет хорошим началом. Вы позволяете своему кешу расти и не влияете на системную память.

Я бы порекомендовал следить за вашим сервером, чтобы убедиться, что распределение памяти для вашей системы и ваш кеш идеально сбалансированы.

Вот хорошая статья об этом: http://techgurulive.com/2009/07/22/how-to-allocate-memory-within-memcached/

02.10.2011
  • Спасибо за подробное объяснение (+1). Мой случай - это второй пункт, который вы описали выше. По сути, вы говорите: сначала найдите, сколько свободной памяти доступно после учета системы, ОС и других ресурсов. Затем выделите немного больше, чем требуется (исходя из наличия). Кстати, как вы придумали 100 МБ выше - просто добавили символы и varchars? 03.10.2011
  • Рассчитав максимальное значение каждого поля * количество клиентов или вы можете отобразить стабильный статус. Вы должны увидеть вызов поля data_length (это то, что я делаю в MySQL: show table status, я уверен, что есть версия Oracle). Тогда вы запросто скажете, вот сколько у меня занимает данных, вы немного увеличите, просто на всякий случай. Но, как я уже сказал, идеального решения не существует. Вы должны проверить, что является лучшим значением для вашего сервера. 04.10.2011
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..