Может кто-нибудь сказать мне, если тип поведения указано в дамп памяти из Visual Studio Azure Redis Использование памяти (w3wp.exe свалка) Insight
нормально? например, работает ли StackExchange.Redis.PhysicalConnection с высоким по инклюзивному размеру (байты)? Или это действительно высоко?
В основном мы испытываем медлительность с нашей веб-головкой после преобразования нашего кода для запуска на Azure Redis с сеанса (мы теперь сериализуем и десериализируем по мере необходимости и сохраняем в кеш-памяти Redis), но общая производительность ужасна.
Запросы завершены, но это может занять некоторое время, из-за единственной резьбовой природы Redis? Мы используем конфигурацию, описанную в качестве лучшей практики командой Azure Redis, как описано здесь. https://stackoverflow.com/a/28821220
Что еще мы можем рассмотреть, чтобы помочь повысить производительность, поскольку текущая производительность неприемлема как жизнеспособная замена нашей реализации на основе сеанса (например, asp.net webforms/sql server/azure IaaS), которые мы имеем в настоящее время.
PS - Сериализация и десериализация действительно вызывает убой, мы понимаем, что IIS испортил нам свой собственный специальный пул памяти для несериализованных наборов данных и т. Д., Но нет никакого способа, чтобы это приводило к увеличению на 300-500% страница загружается, как сейчас.
Мысли оценили!
Wieman @ Тим
Насколько велики ваши кэшированные объекты? Они могут варьироваться в размерах, есть несколько наборов данных, хранящихся в redis.
Какие у них объекты? Большинство объектов - это пользовательские объекты с переменным числом свойств, некоторые даже содержат коллекции.
Какой сериализатор вы используете? Мы используем Newtonsoft для всего, что не требует Rowstate и требуемого двоичного сериализатора для наборов данных, которые нуждаются в rowstate.
Вся сериализация и последующая десериализация выполняются в коде перед вызовом redis баз данных StringGet или StringSet.
Я не знаю о служебных данных памяти, но я знаю, что сериализация/десериализация могут вызвать много накладных расходов (сравнительно). Я видел, как легко вызывать 10x perf. деградации только из-за сериализации [de]. Как хранятся ваши кэшированные объекты?Какими объектами они являются? Какой сериализатор вы используете? –
В дополнение к другим вопросам я имел в виду «Насколько велики ваши кешированные объекты»? –
Возможно, вы захотите сделать некоторые временные интервалы для вашей сериализации/десериализации, особенно на больших объектах и при использовании «двоичного сериализатора». Если это означает, что вы используете .net BinaryFormatter, ну, это может быть ужасно медленным, особенно с большими вложенными списками. Многим людям повезло с protobuf.net как по скорости, так и по размеру сериализованных данных. –