Даже если этому вопросу год, я все еще ищу хороший ответ на этот вопрос.Я ценю любую информацию, которая поможет мне полностью понять эту проблему, касающуюся низкой производительности общения веб-сервисов, размещенных на одной машине.
В настоящее время я разрабатываю систему с несколькими веб-сервисами WCF, которые интенсивно взаимодействуют.Они работают под управлением IIS7 на одном и том же компьютере, причем каждая служба находится в отдельном пуле приложений с несколькими работниками в веб-саду.
Во время индивидуальной оценки каждой веб-службы я могу обслуживать 10000–20000 запросов.в минуту, быстро и без каких-либо проблем с потреблением ресурсов (процессора и памяти).
Когда я тестирую всю систему или только подсистему, образованную двумя веб-службами, я не могу обслуживать более 2000 запросов в минуту,Я также заметил, что время связи между веб-сервисом является большой проблемой (иногда более 10 секунд).Но при тестировании только с 1000 запросов в минуту все идет гладко (время соединения не более 60 мс).Я протестировал систему как с SOAPUI, так и с JMETER, но время вычислялось на основе системных журналов, а не инструментов тестирования.Память и сеть не являются проблемой (они используются очень мало).
Позже я проверил производительность двух взаимодействующих веб-служб WCF, размещенных на двух серверах и на одном сервере.Снова кажется, что существует узкое место, когда сервисы находятся на одной машине, уменьшая количество соединений с десяти тысяч до тысяч;опять же, нет ограничений памяти или процессора.
Как примечание, в некоторых случаях я работаю с довольно большими данными, и некоторые из необходимых операций являются длинными.
Я использовал perf.mon дляПосмотрите, что происходит, для памяти, процессов, веб-службы, aspnet и т. д., но я не видел ничего, что могло бы указывать, что происходит не так.Я также перепробовал все настройки производительности и параметры настройки, которые я мог найти в Интернете.
Кто-то знает, что может быть не так?Почему связь между веб-сервисами может длиться так долго?Почему веб-служба, которая служит точкой входа в систему, может принимать 10000 запросов в минуту, когда тестируется одна, а при взаимодействии с другой веб-службой едва ли принимает 2000?Это проблема IIS7?Может ли моя система работать лучше, если каждая веб-служба будет развернута на отдельном сервере?
Я хочу лучше понять, как внутренние функции (службы IIS и WCF) улучшают производительность для текущих и будущих систем.