2015-07-07 2 views
2

У меня есть приложение MVC с API, используемым в нем, работающим на IIS 6.0 (7.0 на рабочих серверах). Для API я использую реализацию IHttpHandler в файле API.ashx.IIS Высокий и неустойчивый TTFB

У меня есть много различных вызовов API, которые были сделаны в моем файле API.ashx, но я расскажу об одном, у которого нет вызовов БД, так что это определенно НЕ проблема с базой данных. В самом начале метода ProcessRequest я добавил Diagnostics.Stopwatch, чтобы отслеживать производительность и останавливать ее на линии последнего метода. Выход моего секундомера всегда стабилен (+ - 2 мс) и показывает в среднем 5 мс (!!!). Но на моем сайте я вижу абсолютно неустойчивое и различное время до первого байта. Он может начинаться с 15 мс и может вырасти до 1 СЕКУНДЫ, и в среднем показывает 300 мс, но в журналах у меня все равно будет стабильный 5 мс от секундомера.

Это происходит на каждом сервере, который я использую, даже локально (так что это не проблема, связанная с сетью) и на производстве. BTW все статические ресурсы загружаются очень быстро (< 10ms)

Может кто-нибудь предложить решение этой проблемы?

ответ

1

Это звучит как сложный для диагностики без лишних подробностей. Не могли бы вы изменить свой вопрос и добавить диаграмму водопада, показывающую медленный вызов API? Действительно хороший инструмент для создания диаграмм водопада - http://webpagetest.org

Я также рекомендую прочитать эту статью о диагностировании медленных TTFB.

http://www.websiteoptimization.com/speed/tweak/time-to-first-byte/

Он идет в подробности о некоторых из причин медленной реакции. Вот некоторые проблемы производительности сервера, которые могут замедлить работу вашего сервера.

  • памяти утечки
  • Слишком много процессов/соединений
  • внешних ресурсов задерживает
  • Неэффективные SQL запросов
  • Slow база данных вызывает
  • ресурсы сервера Insuficient
  • Перегруженные Общие Серверы
  • Противоречивые время ответа веб-сайта

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

+0

Эта статья тоже! https://blog.cloudflare.com/ttfb-time-to-first-byte-considered-meaningles/ – Deano

+0

спасибо за ответ. Я уверен, что это не проблема SQL, потому что для тестов я использую очень простой API, без каких-либо вызовов баз данных и неуправляемых ресурсов. –

+0

@MaxDove, если бы вы могли опубликовать изображение водопадной диаграммы, сделав запрос на ресурс, который поможет погрузиться глубже! – Deano

Смежные вопросы