Веб-сайт ASP.NET становится невосприимчивым под нагрузкой

У нас есть продукт, состоящий из двух компонентов. Сайт WEB API, размещенный под IIS 8, который я называю им API. Этот сайт предоставляет услуги нескольким сайтам, однако на данный момент используется только один веб-сайт. Другим компонентом этого сайта является сайт ASP.NET MVC (.NET 4), который на данный момент является единственным клиентом сайта API. Позвольте называть его WEB.

Когда мы развернули API и WEB на один сервер с производственной мощностью, все было в порядке, пока количество одновременных пользователей не превысило 16! Затем сайт стал невосприимчивым, что означает, что мы не получили ошибки Timeout (или любые другие), и браузер ожидал ответа навсегда.

Мы воспроизвели ту же проблему в нашей промежуточной среде, используя веб-сайт онлайн-тестирования загрузки. Снова сайт перестает отвечать на запросы, если количество одновременных пользователей превышает 12 или 16 (или выше).

Когда это происходит, тип сайта умирает как 10 минут, а затем становится отзывчивым. Думаю, это потому, что опрос приложений перерабатывается?

Вопрос в том, как я могу узнать, существует ли проблема в API или в WEB? Тогда какова может быть проблема? WEB полностью полагается на API и не подключается к каким-либо базам данных напрямую, но API использует MySql на AWS.

Ответ 1

Как отметили некоторые пользователи, проблема была исчерпана в потоке (иначе говоря, проблема). Мы попытались определить и исправить любой код, который мог бы блокировать потоки. Мы также сделали множество улучшений производительности для уровня API и сайта, чтобы быстро сократить потоки. Наконец, мы развернули сайт в производственной среде и получили приемлемую производительность.

Ответ 2

Вы посмотрели, что елит все ваши ресурсы? Является ли память максимальной? Процессор максимальный? Где твоя шея бутылки? 16 пользователей не должны есть все потоки в пуле приложений любыми способами. Я бы предположил, что какой-то процесс поглощает всю вашу память на вашем сервере, что делает ее невосприимчивой. Узнайте, что это за процесс с Process Explorer или любой программой, которая контролирует ваши ресурсы серверов.

Ответ 3

Вы пытались добавить больше рабочих процессов в IIS к приложениям? У нас были некоторые проблемы с первичным сайтом MVC, которые мы исправили, просто добавив больше рабочих процессов.