Планирование емкости кеша - PullRequest
17 голосов
/ 02 октября 2011

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

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

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

Обновление

Company Id - CHAR (9)

Название компании - VARCHAR2 (250 CHAR)

Компания Desc - NVARCHAR2 (1000 CHAR)

1 Ответ

39 голосов
/ 02 октября 2011

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

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

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

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...