Что ключевые мониторы производительности должны я наблюдать за приложением ASP.NET

Случайная генерация цвета с регулировкой яркости:

function getRandColor(brightness){

    // Six levels of brightness from 0 to 5, 0 being the darkest
    var rgb = [Math.random() * 256, Math.random() * 256, Math.random() * 256];
    var mix = [brightness*51, brightness*51, brightness*51]; //51 => 255/5
    var mixedrgb = [rgb[0] + mix[0], rgb[1] + mix[1], rgb[2] + mix[2]].map(function(x){ return Math.round(x/2.0)})
    return "rgb(" + mixedrgb.join(",") + ")";
}
9
задан 29 June 2009 в 18:45
поделиться

5 ответов

Если вы посмотрите на это с самого базового уровня, у вас есть только 4 основных элемента:

  • Диск
  • ЦП
  • Память
  • Сеть

Вы можете отслеживать их : Диск - длина очереди, остальные -% использования.

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

0
ответ дан 5 December 2019 в 02:28
поделиться

Поскольку количество запросов в день составляет около 5 миллионов записей и продолжает расти,

я бы предложил следующее:

Клиентская сторона

Получите Fiddler и получите показания количество запросов на страницу и время их обработки. Сделайте это для первого запроса и последовательных запросов. В идеале вы должны выполнить выборку данных для 5 первых запросов и 5 последовательных запросов, прежде чем выполнять выборку данных и делать из них выводы.

Параметры для чтения:

  • Сколько запросов на страницу происходит?
  • Сколько из них может быть кешировано?
  • Узкие места ресурсов?

Серверная сторона

Чтобы определить время включения серверной части, я бы предложил Ayendes, Rhino.HttpModule или что-то еще, я точно не помню. Он показывает время обработки страницы на стороне сервера.

Параметры для чтения:

  • Это проблема на стороне сервера или проблема на стороне клиента?

После этого вы должны быть в четкая позиция относительно того, является ли это проблемой на стороне клиента или на стороне сервера. Сделав это, вы можете сосредоточиться на параметрах.

Напоследок, я думаю, вы можете отменить любые изменения в своем коде. Потому что вы предполагаете, что под нагрузкой время выполнения заказа составляет около 10 секунд. Видите ли, браузер не может запрашивать более 6 (+/- 2) ресурсов за раз. Итак, что-то под нагрузкой загружает ваш веб-сервер. Смоделируйте ситуацию и посмотрите, количество запросов, система Team Foundation System, должна помочь. Кроме того, отчеты IIS могут предоставлять запросы на стороне сервера. Взгляните на них. Они могут дать вам четкую картину.

Надеюсь, это поможет.

1
ответ дан 5 December 2019 в 02:28
поделиться

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

следующая статья - хорошее начало.

0
ответ дан 5 December 2019 в 02:28
поделиться

Вы не указываете, где находится потенциальная проблема, поэтому начните с основ, упомянутых @Shiraz. Вы можете покопаться в счетчиках производительности, которые укажут вам, в чем проблема.

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

Но волшебного «смотри на это» не будет, чтобы решить вашу проблему. Решить проблемы масштабируемости сложно.

Не давать никаких указаний относительно того, где находится потенциальная проблема, поэтому начните с основ, упомянутых @Shiraz. Вы можете покопаться в счетчиках производительности, которые укажут вам, в чем проблема.

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

Но волшебного «смотри на это» не будет, чтобы решить вашу проблему. Решить проблемы масштабируемости сложно.

Не давать никаких указаний относительно того, где находится потенциальная проблема, поэтому начните с основ, упомянутых @Shiraz. Вы можете покопаться в счетчиках производительности, которые укажут вам, в чем проблема.

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

Но волшебного «смотри на это» не будет, чтобы решить вашу проблему. Решить проблемы масштабируемости сложно.

Но волшебного «смотри на это» не будет, чтобы решить вашу проблему. Решить проблемы масштабируемости сложно.

Но волшебного «смотри на это» не будет, чтобы решить вашу проблему. Решить проблемы масштабируемости сложно.

0
ответ дан 5 December 2019 в 02:28
поделиться

По KPI:

Некоторые уже упоминали об этом в других ответах. Я не помню настоящих имен счетчиков, но в целом: Запросы в секунду (Интернет) % Процессор (Интернет и SQL) Сборщик мусора памяти (большая куча, поколения 0, 1, 2) Коэффициент попадания в кэш для вашего SQL Server Длина очереди диска (Интернет и, что более важно, ваш SQL) любой счетчик, связанный с блокировкой и взаимоблокировкой в ​​SQL

При получении ответа на ваши вопросы выше:

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

Инструменты, которые вы хотите попробовать, чтобы получить ответы на эти вопросы: .NET Profiler (для профилирования вашего кода ASP.NET) .NET CLR Profiler (для профилирования использования памяти)

Но все же сначала создайте веб-тесты (вы можете легко сделать это с Fiddler для начала) и настроить его дальше (чтобы иметь возможность выполнять привязку данных) с VS и запустить нагрузочный тест с близким к реальному представлению данных (по емкости) и количеству пользователей. С помощью веб-тестов вы сможете определить, какая страница работает неэффективно. Затем углубитесь с помощью профилировщиков, чтобы выяснить, почему.

Вы уже на правильном пути, просматривая ScaleNet.pdf (или онлайн-версию). Это немного устарело, но все еще актуально. Продолжайте читать и применять то, что вы там прочитали.

0
ответ дан 5 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

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