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