Как измерить время отклика без времени клиентской сети?

Как измерить время ответа в типичном многоуровневом веб-приложении с момента получения сервером запроса до того, как сервер времени отправит ответ? Я хочу сосредоточиться на производительности на стороне сервера, поэтому я НЕ хочу включать время отклика, проведенного в Интернете.

Проблема в том, что журналы веб-сервера обычно регистрируют время отклика, которое включает время сети. Например, в IIS в поле "время выполнения" в журнале доступа указывается время, когда сервер получает запрос, а сервер времени получает подтверждение ответа от конечного пользователя. Дополнительные сведения см. В этой статье MSDN.

Существует ли какой-либо инструмент мониторинга или конфигурация сервера, позволяющая проводить такие измерения?

3 ответа

Решение

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

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

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

Что касается инструментов тестирования, у Mercury Interactive есть несколько очень хороших инструментов. С тех пор они были куплены HP, так что вы можете посмотреть там, чтобы увидеть, что в настоящее время доступно.

Другие вопросы по тегам