Как измерить время отклика без времени клиентской сети?
Как измерить время ответа в типичном многоуровневом веб-приложении с момента получения сервером запроса до того, как сервер времени отправит ответ? Я хочу сосредоточиться на производительности на стороне сервера, поэтому я НЕ хочу включать время отклика, проведенного в Интернете.
Проблема в том, что журналы веб-сервера обычно регистрируют время отклика, которое включает время сети. Например, в IIS в поле "время выполнения" в журнале доступа указывается время, когда сервер получает запрос, а сервер времени получает подтверждение ответа от конечного пользователя. Дополнительные сведения см. В этой статье MSDN.
Существует ли какой-либо инструмент мониторинга или конфигурация сервера, позволяющая проводить такие измерения?
3 ответа
Запустите сетевой захват на сервере и посмотрите, когда сервер получил запрос, и сравните его со временем, когда он ответил на запрос. Это покажет вам, когда запрос попал в сетевой стек на сервере и когда он покинул сетевой стек, что должно быть приблизительным приближением к скорости, с которой сервер обрабатывает запрос.
Просто добавьте логирование в ваше приложение, чтобы измерить время, затрачиваемое на любую часть всего цикла обслуживания, которую вы хотите измерить. Хорошие рамки делают это для вас автоматически.
Тестирование / выборка должны проводиться с наименьшим количеством промежуточных сетей, насколько это возможно, чтобы изолировать / устранить влияние времени задержки сети.
Что касается инструментов тестирования, у Mercury Interactive есть несколько очень хороших инструментов. С тех пор они были куплены HP, так что вы можете посмотреть там, чтобы увидеть, что в настоящее время доступно.