Когда загрузка для IIS7 слишком много?

В нашем клиенте кандидаты берут тесты с нашим программным обеспечением. Если их тест закончен, некоторые вычисления сделаны на сервере. Теперь, иногда, 200 кандидатов могут закончить свой тест одновременно, таким образом, 200 вычислений сделаны параллельные. Вычисления все, кажется, идут прекрасные, но некоторые вызовы к серверу IIS7 возвращают ошибку HTTP...

В Flex это - ошибка:

code = "NetConnection.Call.Failed"
description = "HTTP: Status 200"
details = "http://servername/weborb.aspx"
level = "error"

Разве состояние не 200 хорошо? Так что случилось здесь? Это - даже проблема IIS7? Из этих 200 кандидатов 20 получил это сообщение. При перезапуске их теста все работало хорошо.

Я нашел это на предмете, но интересно, имеет ли это какое-либо отношение к моей проблеме (на следующей неделе, наш клиент сделает некоторый stresstests, и я буду, уже попросил, чтобы они протестировали тест если решение в этом сообщении работы).

Некоторые вопросы:

  • Может случиться так, что блоки IIS7, которые называет определенный http, когда загрузка к очень?
  • Как можно знать, что IIS7 заблокировал те вызовы из-за слишком большой загрузки?
  • Действительно ли возможно настроить эти вещи?

Технически, в будущем я хотел бы поставить вычисления в очередь, но на данный момент, там не время, ни бюджет для этого.

Приложение: Flex, WebORB, ASP.NET, IIS7 en SQLSERVER2008. Сервер является Windows Server 2008.

5
задан Adeel 22 February 2010 в 09:52
поделиться

4 ответа

Эта проблема кажется мне очень знакомой. У нас есть куча виджетов flex, которые подключены к одному серверу, и иногда он также возвращает "Netconnection.Call.Failed". Нам кажется, что IIS (и MSSql за ним) не может обработать все запросы вовремя, поэтому некоторые из них выходят по таймеру. Попробуйте проверить, сколько времени занимает каждый запрос/все запросы, затем проверьте настройки таймаута.

1
ответ дан 15 December 2019 в 06:25
поделиться

Есть много вещей, которые вы можете сделать, чтобы точно настроить производительность как вашего сервера, так и IIS .

Чтобы ответить на ваши вопросы:

Максимальный лимит одновременных подключений (плюс другие параметры) в IIS 7 можно настроить, выбрав свой веб-сайт в диспетчере IIS и выбрав «Дополнительные параметры» на панели действий справа. Хотя по умолчанию это число , намного больше, чем 200.

Просмотр файлов журнала IIS , в частности, коды состояния возврата могут дать вам представление о том, что пошло не так. Точно так же журнал событий Windows должен сообщать вам обо всех произошедших исключениях.

1
ответ дан 15 December 2019 в 06:25
поделиться

Технически, в будущем я бы хотел поставить вычисления в очередь, но пока на это нет ни времени, ни бюджета.

Очередь не так уж сложно создать с помощью скрипта пакетной обработки, работающего по расписанию Windows. Просто сбрасывайте результаты в базу данных SQL или, если вам очень лень, вставляйте строки в SQL с помощью сериализованного массива, а затем попросите их "вернуться", чтобы посмотреть свои результаты. "Пожалуйста, подождите, ваши результаты еще обрабатываются."

На мой взгляд, это займет меньше времени, чем ожидание ответа на SO.

0
ответ дан 15 December 2019 в 06:25
поделиться

Я предлагаю вам включить балансировку нагрузки между экземплярами IIS или подумать об использовании nginx для балансировки нагрузки.

также установили ограничение на 200 пользователей выше. Поскольку в IIS каждый пользователь, подключающийся к вашему приложению, считается 1 экземпляром пользователя, в какой-то момент вы будете использовать до 200 пользовательских слотов. Это настройка по умолчанию, и вы можете установить ее на гораздо большее число.

Также установите для тайм-аута большее число.

Также посмотрите на Comet, если вы пытаетесь вызвать согласованный результат, например данные в реальном времени (акции, погода, чат, чат)

1
ответ дан 15 December 2019 в 06:25
поделиться
Другие вопросы по тегам:

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