VMware предлагает ESXI бесплатно, который является хорошим virutalization пакетом, который должен сделать Вас приятно. Это действительно добирается, чтобы быть немного конкретным с аппаратными средствами, хотя можно проверить этот список на whitebox ПК/серверы и компоненты, которые люди протестировали, чтобы хорошо работать с ним (поля Dell идут там): http://www.vm-help.com//esx40i/esx40_whitebox_HCL.php
Я никогда не использовал другое программное обеспечение виртуализации (такое как VirtualBox), таким образом, я не могу говорить за них, но Вы, возможно, должны иметь дополнительную установку Windows, если они ожидают ОС (такую как VMware Server, который работает на Windows). Просто что-то еще для рассмотрения.
Можете ли вы проверить, что ваше имя LogFormat 'объединенное' соответствует тому, что использует ваша переменная CustomLog. Я тестировал это на OS X, и, за исключением незначительной разницы, которую вы ожидаете между чтением переменной при обратной записи заголовков и при регистрации (после отправки всех данных обратно клиенту), они очень близки:
/etc/apache2# grep LogF httpd.conf
LogFormat "%h %l %u %t \"%r\" %>s %b %t %D" common
/etc/apache2# grep CustomL httpd.conf
# a CustomLog directive (see below).
CustomLog "/private/var/log/apache2/access_log" common
# wget -qqO /dev/null -S http://localhost/
...
X-Request-Received: t=1314588821970347
X-Request-Processing-Time: D=336
/private/var/log/apache2# tail access_log
::1 - - [28/Aug/2011:20:33:41 -0700] "GET / HTTP/1.0" 200 44 [28/Aug/2011:20:33:41 -0700] 587
Я думаю, что лучше всего выбрать «собственное» имя для вашего пользовательского LogFormat, а не повторно использовать / изменять объединенный формат журнала
.
За исключением всего остального (и как было предложено @polynomial), кажется, что есть разрыв между показываемой вами конфигурацией и выводом, который вы показываете.
Если только для того, чтобы сделать устранение неполадок менее двусмысленным (в настоящее время вы не Не знаю, объединены ли значения по умолчанию
( LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" вместе
) или используется ваша версия).
Итак, я бы сначала сделал что-то вроде:
LogFormat "% h% D% l% u% t \" % r \ "%> s% b \"% {Referer} i \ "\"% {User-Agent} i \ "" perf-comb
А затем используйте perf-comb там, где это необходимо.
Глядя на довольно широкие различия между значениями Header% D и AccessLog% D в примере @ polynomial, я также хотел бы задаться вопросом, действительно ли они представляют две разные точки в обработке запроса:
Это полное предположение.
[Это очень старый вопрос, но он заслуживает лучшего ответа для тех, кто приходит сюда]
Заголовок HTTP обязательно генерируется до того, как контент будет доставлен конечному пользователю, поэтому это исключает задержки в сети.С другой стороны, запись access_log записывается после того, как весь контент доставлен конечному пользователю, возможно, по медленному сетевому каналу, и включает время, затраченное на эту доставку.
Какая цифра более полезна для вас, зависит от о том, что вы пытаетесь выяснить. Для URL-адреса вашего изображения вы, вероятно, смотрите на производительность конечного пользователя, и задержки в сети, вероятно, являются большей частью ответа.
Если вы отлаживаете производительность динамически генерируемого контента, вы, вероятно, захотите регистрировать время без учета сетевых задержек. LogFormat позволит вам регистрировать содержимое заголовка с помощью % {X-Request-Processing-Time} i
- не пробовал, но надеюсь, что это сработает.