Сервер AppFabric Cache и веб-приложение на одном физическом компьютере - PullRequest
9 голосов
/ 16 ноября 2011

Я рассматриваю возможность использования функции кэширования AppFabric для одного из наших проектов.Нам нужна функция распределенного кэширования, и кажется, что AppFabric - хорошее решение.Однако у меня есть несколько вопросов, на которые, я надеюсь, здесь будут даны ответы.

Мы планируем разместить сервер AppFabric Cache на той же машине, где установлено наше веб-приложение.Я обнаружил в статье MSDN, что AppFabric должно быть установлено на выделенном компьютере.Там также отмечается, что AppFabric можно установить на том же компьютере, что и само приложение, но следует учитывать некоторые проблемы (цитата из статьи):

Хосты кэширования Windows Server AppFabric должны быть выделены для службы кэширования.Это означает, что эти серверы также не используются в качестве серверов приложений, веб-сайтов или баз данных.Можно использовать невыделенные серверы кэширования в кластере, но этот сценарий не поддерживается.Несмотря на эту политику, если вы решите использовать невыделенные узлы кэша, убедитесь, что правильно оценили и протестировали конфигурацию для каждого узла кэша, чтобы выделить достаточно памяти и сетевых ресурсов для службы кэширования и всех других служб на машинах.Также следует понимать, что скачки загрузки процессора и сети другими службами отрицательно скажутся на производительности и стабильности кластера кэша.

Вот ссылка на эту статью: Article # 1

Теперь, это звучит достаточно разумно, я думал, что будет достаточно ограниченного объема кэш-памяти AppFabric RAM.Но, читая другую статью о MSDN, я обнаружил следующее:

Как для физических, так и для виртуальных машин следует отметить расположение кластера кеша для приложения или веб-серверов, которые используют кеш.Если они находятся в отдельных центрах обработки данных, убедитесь, что задержка между этими центрами обработки данных не окажет негативного влияния на вашу производительность.На этом этапе может быть заманчиво использовать ваше приложение или веб-серверы для ваших серверов кеша.Хотя возможно, это не поддерживается.Во-первых, любые скачки использования ресурсов такими службами, как IIS на этих машинах, могут повлиять на кластер кэша. Во-вторых, служба кэширования предполагает, что она находится на выделенном сервере и потенциально может использовать гораздо больше памяти, чем вы указали.

Вот ссылка на эту статью: Article # 2

Если я правильно понял приведенное выше утверждение, это означает, что, несмотря на мои параметры конфигурации для AppFabric, потребуется столько оперативной памяти, сколько нужно?Может ли это быть действительно правдой?Кто-нибудь имел опыт настройки, где application и AppFabric расположены на одном компьютере?

1 Ответ

4 голосов
/ 17 ноября 2011

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

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

  2. Сама служба кэширования периодически выдает ошибки, говоря, что она недоступна, и тогда у вас будетпойти и проверить его здоровье с помощью powershell.Кроме того, каждый раз, когда ваш компьютер использует более 90% оперативной памяти, он перестает работать.

  3. Даже если на блок памяти оказывается небольшое давление, он агрессивно пытается выселить его.элементов из кеша, и для этого всегда требовалось около 10-20% процессорного времени ....

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

...