Я хотел бы воспроизвести журналы доступа IIS или Tomcat, чтобы выполнить нагрузочное тестирование. Журналы доступа содержат только запрос Get, поэтому данные сеанса / данные публикации здесь не проблема. Однако в журналах IIS и Tomcat по умолчанию присутствуют две проблемы синхронизации.
Запись «время» в журнале доступа имеет разрешение 1 секунда, например «06 / Aug / 2011: 17: 51: 52 +0800». Поэтому, когда ввод запроса за 1 секунду неизвестен, они могут поступать как прерывисто, так и равномерно. Время отклика будет другим, но насколько отличается, не известно.
Запись "время" журнала доступа регистрирует время завершения запроса, а не время прибытия запроса. Видеть Время Tomcat,Время журнала IIS. Если присутствует поле «затраченное время», мы можем извлечь «затраченное время» из «времени», чтобы получить время прибытия, но настоящая проблема в том, что «затраченное время» не регистрируется по умолчанию. Мне кажется, что единственное, что мы можем решить эту проблему, - это попытаться убедить клиента включить «затраченное время».
Обе проблемы можно решить, изменив регистратор по умолчанию, но это последнее средство. Существуют ли какие-либо обходные пути или приемы для измерения или расчета правильного «времени», чтобы его можно было использовать для нагрузочного тестирования.
Нет, вы не можете получить более точные данные, чем те, которые вы измерили. Вы можете попробовать имитировать что-то близкое к тому, что вы хотите (например, предположить равномерное распределение или просто выбросить все это в начале второго), но лучший способ - улучшить ваши измерения. Вы можете сделать это вне полосы, не изменяя свое приложение, путем захвата пакетов (что также позволяет обойти проблему «журналирования при завершении»); вы просто захватываете пакеты с HTTP-запросами и (с точностью до миллисекунды) отметками времени и где-нибудь записываете их.