Сбой SignalR при высокой нагрузке
У меня есть веб-сайт с очень высокой нагрузкой, и я держу свое тестовое приложение под скрытым iframe, чтобы убедиться, что целевая среда является хорошим выбором для моего варианта использования. Сначала попробовал тестовое приложение SignalR, а затем Pokein под той же конфигурацией сервера. В настоящее время мы используем решения Flash Remoting, но вскоре мы планируем изменить его.
Я потратил некоторое время на создание своего тестового приложения на основе SignalR для одновременного обновления клиентов под высокой нагрузкой на мой сайт. Это работало хорошо в сценарии (некоторые клиенты запрашивают сообщения).. когда большинство подключенных клиентов запрашивают сообщения одновременно, это резко не удавалось (мне нужно было удалить его из вызова iframe).. Я Я подозревал, что моя конфигурация сервера является проблемой, но тот же сценарий работает под другим платным решением Pokein без каких-либо проблем.
Есть какой-то трюк, который я забыл?
Обновление от 10.02.2012: хотя мы решили внедрить PokeIn в наше решение, я попробовал последний код SignalR на Github (может быть полезным для других).. и результат тот же.
Март 13.2012 Обновление: Сценарий: (еще раз) -Попробуйте отправить сообщение тысячам подключенных клиентов в течение определенного интервала, скажем (1 сек). Это не будет трудно проверить и увидеть результат. Я чувствую, что я единственный, кто подчеркивает необходимость использования библиотек для этого очень распространенного использования.
Подробности (Как воспроизводить - протестировано с 0,5 от Github) - Server 2008 R2 32 ГБ DDR3, i7-2600 3,4 ГГц, 2x256 ГБ Crucial M4 - ASP.NET 3.5
- Одностраничное приложение. обновляет время на стороне клиента с сервера каждые секунды
Эта страница встроена в скрытый iframe, загруженный несколькими веб-сайтами, для того, чтобы выполнить реальный нагрузочный тест.
вопросы
В какой-то момент система блокируется (около 800 пользователей), и большинство клиентов не получает обновленное время с сервера
Когда система блокируется, эта страница приложения перестает отвечать
Я также пытался увеличить интервал до 5 секунд. На этот раз система была более отзывчивой (около 950 пользователей), но результат был таким же. Я пробовал это на пулах приложений.NET 2 и.NET 4.
Надеюсь, этих деталей достаточно. Повторять этот тест для меня довольно легко, и как только я найду свободное время, я повторю тест с будущей версией.