Я установил некоторую Трассировку Неудачных Запросов (в IIS 8.5 на Windows Server 2012), чтобы попытаться проанализировать, почему некоторые страницы загружаются дольше, чем другие. У нас возникает ситуация, когда страница загружается через несколько секунд, а в других случаях обработка занимает 20 секунд. Поэтому я надеялся, что смогу использовать FRT, чтобы помочь мне проанализировать те моменты, когда это занимает много времени.
это вопрос здесь очень похоже, но показывает немного времени, а мое нет. И моя проблема не связана со временем передачи (по крайней мере, между IIS и мной).
Это не просто статический HTML. Эти страницы динамически генерируются PHP, который, в свою очередь, обращается к базе данных для получения информации. Я надеялся различить время, затрачиваемое IIS или PHP, но все мои файлы журналов показывают 0 раз (или 0 длительностей) для каждого элемента FRT.
Немного стрелялки с моей стороны, потому что я не знаю точно, какой раздел сообщит о том, что я делаю, но вот мой конфиг:
Content = All
Conditions: Time = 2 (which is >2 if I read the help file correctly)
Trace Providers: ISAPI Extensions (verbose), WWW
Server (verbose)
* For WWW Server I have marked each of the 'Areas'
PHP закодирован так, что он также сообщает количество времени, которое требуется. Это говорит мне, что в определенных условиях это занимает 6-8 секунд. (Это тестовый файл, разработанный для этой цели, поэтому он выполняет 50 запросов, сообщая все время назад.) Однако иногда в этом прогоне выполняется один запрос, обработка которого занимает 15-20 секунд. В то время как журнал FRT действительно регистрирует трассировку, он скажет, что потребовалось время всего 2,532 с (в качестве примера), хотя PHP (и настенные часы) говорят, что это было 6-8 секунд. Но опять же, изучая подробности журнала FRT, он показывает только 0 за время, независимо от того, сколько времени на самом деле это заняло.
Что я действительно хотел бы увидеть, так это то, сколько времени занимает вызов PHP; IIS приходится ждать, пока это не закончится, прежде чем он возвращает результаты, поэтому кажется, что это будет зарегистрировано …
Спасибо,
Джастин
Когда вы устанавливаете ограничение времени 2 на FRT, трассировка останавливается на стадии, к которой, к сожалению, были достигнуты 2 секунды.
Есть несколько способов обойти это. Если он находится на машине, где вы можете ограничить трафик, например, на испытательном стенде или на испытательном стенде, тогда вы можете настроить его на отслеживание результатов «200» для кода состояния. Он будет регистрировать все успешные (но длительные) запросы.
Если это невозможно, то может помочь настройка трассировки ближе к шкале времени проблемы. Так что в вашем случае установите его на 6 секунд, и вы увидите все этапы процесса, вплоть до того, который проходит
Других решений пока нет …