Кто-либо испытывал или знал об отрицательных побочных эффектах от наличия высокого сервисного количества экземпляра как 60k? Кроме потребления памяти, конечно.
Я планирую увеличить порог для максимального позволенного количества экземпляра в наших продуктивных средах. Я в основном сыт серьезными производственными инцидентами по горло просто, потому что "что-то" забыло закрывать прокси правильно.
Я планирую перейти к чему-то как 60k экземпляры, которые позволят сервису переживать использующие тайм-ауты сессии по умолчанию в среднем числе телефонного тарифа для наших клиентов.
Настройки регулировки были бы:
Спасибо, Alex
По умолчанию количество одновременных экземпляров неограниченно. 60 тыс. не будут иметь никакого значения.
Когда вы не применяете дросселирование к своему сервису, по умолчанию стоит
•maxConcurrentCalls = 16
•maxConcurrentSessions = 10
•maxConcurrentInstances = Unlimited
Существует несколько способов применения дросселирования и расширения значений по умолчанию, но все это зависит от режимов InstanceContext, Concurrency и Session? Основываясь на этих ответах, я могу предложить оптимальные настройки конфигурации.
Часть этого я рассматриваю в своей статье ESB через WCF / Trottling Здесь
UPDATE:
Спасибо за ваш ответ. Per Session - это нормально. Есть хорошая статья по оптимизации вашего WCFService Здесь
Они рекомендуют изменить ваши настройки на немного больше чем 16 * количество CPU. Поскольку вы используете сессию, вам следует установить ConcurrentCalls на 1-3% от ваших Concurrent Instances.
Итак, допустим, у вас 8 ядер в вашем сервере. Я бы рекомендовал начать настройку на обслуживание каждой сессии следующим образом:
<serviceThrottling maxConcurrentCalls="6"
maxConcurrentInstances="200"
maxConcurrentSessions="200"/>
Это должно устранить ваши проблемы с клиентами, не закрывающими соединения, особенно если вы сейчас используете 10 сессий по умолчанию. Ваш сервер должен быть в состоянии обрабатывать гораздо больше, но 60k - это, вероятно, перебор. Вы можете протестировать и увеличить количество сеансов по мере необходимости. Все зависит от мощности сервера и от того, для чего еще вы его используете.
Основываясь на этих настройках, если вам нужно расти дальше, вы можете контролировать производительность и посмотреть, можете ли вы увеличить их, в противном случае, вы можете легко масштабировать на большее количество серверов и Load balance.
Надеюсь, это поможет... счастливого кодинга