Поддерживайте 250 + параллельные пользователи для веб-сайта интранет

Я вручную загрузил бы обновление (доступный здесь). Затем закройте все запущенные приложения, особенно антивирусные приложения, и затем попытайтесь выполнить обновление. Если это все еще перестало работать, используйте ссылку Поддержки Контакта на связанной странице KB.

0
задан 15 December 2010 в 12:25
7 ответов

Если бы Ваше приложение является stuggling с 20 параллельными пользователями и не выполнение чего-то очень интенсивного как перемалывание чисел промышленной силы, я был бы склонен взять предположение, что это - код, который может быть виноват, а не IIS.

Мое первое предложение - Вы, проверяют кодовую базу на плохой дизайн/логику, оптимизируют стандартные программы доступа к базе данных и доступа к данным и видят, имеет ли это какой-либо эффект. Вы могли попытаться использовать Resharper или подобный для помощи Вам в этом.

4
ответ дан 4 December 2019 в 11:04

Я склонен обвинить код asp.net. IIS должен служить 250 пользователям без потения.

Так или иначе 1) включаете пользовательские ошибки найти точное место в приложении, где оно перестало работать. 2) присоединяете отладчик и видите, где у Вас есть тайм-ауты или циклы, которые не возвращаются.

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

Факт, который не предсказуем, не указывает на IIS также.. это, вероятно, означает, что ошибка зависит от некоторого совместно используемого ресурса или некоторых недетерминированных путей выполнения кода.

4
ответ дан 4 December 2019 в 11:04
0
ответ дан 4 December 2019 в 11:04

Используйте профилировщика МУРАВЬЕВ для нахождения самых медленных строк в коде. Кроме того, увеличьте число разрешенных потоков, я думаю в web.config. Возможно, также увеличьте тайм-аут и удалите функции (такие как getdate) и особенно табличные функции из Вашего кода SQL. При абсолютной необходимости в функции в представлениях, например, используйте escape-последовательности ODBC, такой как {fn curdate ()}, потому что функции ODBC являются каноническими (индексируемыми) функциями, в то время как обычные функции SQL-сервера недетерминированы (не индексируемый).

0
ответ дан 4 December 2019 в 11:04

Если Вы получаете 500 ответов и тайм-аут, который указывает, что веб-сервер обрабатывает запрос очень хорошо, но что-то должно было завершиться, запрос испытывает таймаут - вероятно, запрос, который веб-сервер отправил на сервер приложений. Если бы проблема была на веб-сервере, то Вы, более вероятно, получили бы сбой соединения или сетевую ошибку из-за тайм-аута (т.е. никакой ответ HTTP вообще), а не 500 ответов. Я запустил бы путем рассмотрения метрик с серверов дб и приложения. Если обычные метрики выглядят хорошими, то ищут поведение при блокировании. DBA должен определить это быстро на дб, но в коде сервера приложений (пользовательский код, я принимаю?), необходимо будет вырыть глубже.

0
ответ дан 4 December 2019 в 11:04

Я с другими: что-то, вероятно, неправильно с Вашим приложением. Однако Вы не сказали, работает ли это приложение хорошо над другими аппаратными средствами (там машина разработчика, где это установлено, на котором можно выполнить Бегуна Загрузки против?) или нет.

Однако если Вы думаете, серверное оборудование и/или конфигурация являются подозреваемым, Вы могли бы установить Зоомагазин Microsoft.NET 4.0 (для.NET 2,0 приложения) или возможно DotNetNuke, Система управления контентом (CMS).NET с открытым исходным кодом на тех же аппаратных средствах и видеть, как они складывают против Бегуна Загрузки. Если они оба проваливают тесты, то, возможно, Ваши аппаратные средства являются подозреваемым (и я поместил их на другую машину для тестирования), или конфигурация/параметры Бегуна Загрузки не корректны, и необходимо смотреть там.

0
ответ дан 4 December 2019 в 11:04

Два слова: Кэширование Сервера.

Проанализируйте свое приложение и посмотрите то, что может кэшироваться в какой уровень, начиная с Asp. Кэширование вывода Страницы сети и погружающийся в добавление слоев, кэширующееся в каждом слое как соответствия. Найдите свои узкие места и спросите себя, как часто тот процесс нужно назвать. Те данные уникальны для каждого пользователя? В противном случае затем кэшируйте его однажды и используйте кэшируемое значение для последующих запросов. Данные только изменяются в определенное время? Если так, выберите его однажды и установите кэш для истечения в то время. Я могу уверить Вас, что это одно сделает впечатляющие улучшения Вашей способности.

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

1
ответ дан 4 December 2019 в 11:04

Теги

Похожие вопросы