Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

Производительность Performance

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

Зачем

Одна из архитектурных характеристик, атрибутов качества ИС.

  • Ключевая метафора для понимания производительности - это конвейер задач. Которые прокачиваются через трубу.
  • Количество и последовательность задач в конвейере определяются требованиями заказчика и техническими решениями программиста.
  • Пропускная способность трубы определяется ее шириной (Bandwitch) и длиной(Latency). Которые в свою очередь определены лежащим в фундаменте системы Hardware/Software.
  • Пропускная способность системы в целом определяется тем, сколько задач можно прокачать через трубу в единицу времени. - Здесь важны “ширина” (объем используемого CPU/RAM/IO) и “длина” (продолжительность выполнения) задач.
  • Производительность может быть повышена следующими способами:
    • Сокращением “длины” и/или “ширины” задач
    • Выполнением задач параллельно, ЕСЛИ в “трубе” есть для этого место.
    • Исключением задач из конвейера - выполнением их асинхронно.

Паттерны.

Веб-приложения

  • Latency
    • тайминг логировать
      • на клиенте
        • Yslow, page speed chrome
      • на веб сервере
        • The Time-Taken - field shows the length of time that it takes for a request to be processed and its response to be sent.
          • This value gets calculated by a timer that gets initialized when the IIS server receives the first byte of an HTTP request, and stopped when the last IIS response send operation completes.
          • It is important to note that the Time-Taken field usually includes the time that the request and response packets are travelling over the network.
    • network speed??
  • Errors
    • HTTP Error 503.2 — Service Unavailable в логах IIS есть - очередь запросов
    • WIN32_ERROR_DESCRIPTION(sc-win32-status) as Description, TO_LOCALTIME
    • http-status-code
    • long time-taken and win32 status code = 64
      • is connection is already lost? common by proxies, to not have too many socket connections?
  • Traffic
    • DOS attack “slow post”
    • выявить источник и тип трафика, а также точки входа на сайт или скрипты, которые вызываются чаще всего. Причины высокой нагрузки в результатах анализа следует посмотреть:
      • TOP 20 запросов методом POST
      • TOP 20 запросов методом GET/HEAD
      • TOP 20 IP адресов по числу хитов
      • TOP 20 ссылающихся страниц по числу хитов

Диагностика Troubleshooting

  • Настройки
  • Use Case
  • Dump
  • Трассировка

Инструменты

Метрики

Виды метрик и примеры

Требования пример

  • какой объем памяти выделен будет на работу приложения на хостинге?
  • какой объем памяти допустимо использовать на ПК клиента для отображения отчета (максимум как мы понимаем 1ГБ- память на работу ОС XP, т.е. около 800Мб)?
  • какая макс скорость канала будет от ПК пользователя до веб-сервера?
  • какое время ожидания отчета в принципе допустимо для “очень большого отчета”? предлагаю определиться именно с параметрами “очень большого отчета”
  • Здесь необходимо сначала дать определения большого и не большого отчета, а то слишком субъективные оценки.
  • Обычный Текстовый 150 строк * 12 столбцов 12 сек.
  • Большой Текстовый отчет за 3 года не более 2 мин. (ориентировочно 20000 строк*15 столбцов)
  • Обычный Числовой/Графический 1 минута 3-4 группировки 200 строк * 100 столбоцов
  • Максимальный Числовой/Графический максимальная скорость построения отчета – 2 минуты.

TODO