ASP. NET Проблема с медленностью webAPI Framework - PullRequest
0 голосов
/ 11 июля 2020

Я реализовал веб-службу с использованием ASP. NET инфраструктуры WebAPI.

Время ответа меньше в моей локальной системе (целевая платформа4.5), которая развертывается на сервере.

После развертывания в Windows2012R2 IIS8.5 ответ на каждый запрос занимает около 30 секунд. Я пробовал использовать образец веб-службы без извлечения данных из базы данных. Это также занимает больше времени. Я установил Fiddler и обнаружил, что TTFB занял около 26 секунд.

Я создал веб-службу, используя этот URL:

https://www.c-sharpcorner.com/article/create-simple-web-api-in-asp-net-mvc/

Даже отображение Само «приветственное» сообщение занимает около 30 секунд. Есть мысли о том, где искать, чтобы исследовать проблему с производительностью? Вот пример кода, как в URL

namespace Demo1.Controllers
{
    [System.Web.Mvc.SessionState(System.Web.SessionState.SessionStateBehavior.Disabled)]
    public class DemoController : ApiController
    { 
     public string Get()
        {
            return "Welcome To PARIS Web API";
        }
        public List<string> Get(int Id)
        {
            return new List<string> {
                "Data1",
                "Data2"
            };
        }

}}

1 Ответ

0 голосов
/ 18 июля 2020

Производительность скомпилированного кода на двух разных серверах почти всегда связана с физическими ресурсами, которые были доступны во время выполнения кода.

Имейте в виду, что мы, как разработчики обычно код на ПК с гораздо лучшими характеристиками, чем серверы, на которых мы развертываем!

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

  • Иногда, чтобы снизить затраты, мы развертываем на серверах ресурсы, которые, по нашему мнению, необходимы нашему приложению, не запоминая что ОС этого сервера будет иметь базовые c требования, которые необходимо будет удовлетворить.

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

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

Это поможет узнать, развертываете ли вы физический сервер, виртуальная машина, служба облачных приложений или контейнерный хост, если сервер находится в облаке или на земле, и если вам известна общая пропускная способность, доступная с сервера?

Просто наплевать , это был старый. Net gotchya: Убедитесь, что ваш сервер или брандмауэр не блокирует исходящие inte rnet звонки! Из-за вызовов низкого уровня в. Net при попытке выполнить проверки отзыва сертификата SSL ваш код может ждать при запуске, пытаясь выполнить внешние вызовы. В этом посте обсуждались варианты отключения этого. Что-то, что можно попробовать, если ничего не помогает.

...