Назад | Перейти на главную страницу

Как отследить источник проблем с тайм-аутом FastCGI в PHP и IIS 7.5?

У меня проблема, и я надеюсь, что вы, эксперты, действительно поможете мне найти причину. Я получаю случайные тайм-ауты страниц (которые проявляются как ошибка 500), причину которых я не могу найти.

Версия PHP:

PHP 5.5.12 (cli) (built: Apr 30 2014 11:20:11)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

Версия IIS:

Version 7.5.7600.16385

FastCGI:

C:\Users\lock>%windir%\system32\inetsrv\appcmd list config -section:system.webSe
rver/fastCgi
<system.webServer>
  <fastCgi>
    <application fullPath="C:\php5\php-cgi.exe" activityTimeout="700">
      <environmentVariables>
      </environmentVariables>
    </application>
  </fastCgi>
</system.webServer>

Я включил журналы неудачных запросов и для случайных страниц получаю следующее:

C:\php5\php-cgi.exe - The FastCGI process exceeded configured activity timeout

Затраченное время 700007 мсек.

Вчера вечером я создал 2 файла, которые просто запускают очень легкий запрос к MySQL и ODBC, и запускал их каждую минуту. Проверяя сегодня утром, единственным файлом, который привел к FailedRequest, был ODBC, поэтому я уверен, что проблема связана с подключением к ODBC. Я создал новый источник данных ODBC, подключенный к тому же серверу и драйверу, но с другой базой данных, и все еще получаю тайм-ауты, поэтому я не думаю, что это сама база данных. Я попробую посмотреть, odbc_pconnect или odbc_exec функция, время ожидания которой истекло. Мне удалось воспроизвести проблему через свой собственный браузер (он зависал почти 15 минут до создания журнала FailedRequest), и в это время я смог запустить другой браузер и запустить ту же страницу без проблем, поэтому я не думаю, что это как-то связано с блокировкой таблиц в базе данных или чем-то еще.

Любая помощь будет принята с благодарностью - мы действительно не знаем, куда идти!