Привет StackOverflow народы,мой 3 ярусы сайт держит замораживания с помощью Curl
немного фона устанавливается
Мой PHP на под управлением Windows 7 ком с помощью IIS и я реализовать web.config и SQL Server (mssql) - 12,0.
Сайт, который я построил, представляет собой теоретическую трехуровневую архитектуру, то есть я протестировал с использованием 2 ком с одним комком, содержащим mssql и веб-уровни, а другой - с уровнем приложения.
поэтому, когда пользователь подключается, он подключается как этот
[user's com] --request page--> [web tier] --request info--> [app tier] --get info--> [mssql tier]
им с помощью функции Curl PHP для отправки запросов на приложение уровня, который выглядит примерно так:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'curl');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close'));
$result = trim(curl_exec($ch));
плагиате this question в немного.
Иногда я использую вызов $ .ajax для получения информации из веб-уровня, например, отзывов или сообщений.
Типичная страница содержит, возможно, 10-20 вызовов cUrl.
Проблема
Проблемы заключается сайт держит замораживания после 3 или четырех страниц (это случайное, но, как правило, в этом диапазоне) или на странице оленьей кожи нагрузки все (его мое понимание, что это связанно с опция curlopt_timeout? требуется объяснение), и я должен перезапустить сервер IIS. Я определил, что функция cUrl продолжает замораживать ком.
Я искал несколько месяцев для решения, но после примерно 20 различных решений я нахожусь на своем пути. я не знаю, почему cUrl замерзает весь IIS (весь локальный хот-сайт замораживается), и я понятия не имею, почему он продолжает возвращаться, даже когда я скопировал весь сайт в другой com (это стало хуже).
Когда я тестировал предмет на 2 компьютерах (см. Выше), сайт загружался очень медленно. очевидно, из-за cUrl.
Я надеюсь, что кто-то может пролить свет на то, что происходит, и решение, если это возможно.
Благодарим сообщество stackoverflow.
Дополнительная информация
Если это помогает решить проблему, все Curl запросы идут в один файл PHP на приложение ярусе, dbQuery.php, который читает входной и загружает страницу MSSQL таблицы необходимо, получает или отправляет любую информацию и возвращает результат mssql в xml. (Im думает, что это может стать узким местом, поскольку самая большая страница вызвала 37 вызовов cUrl).
Update
сегодня утром (26/3/2012) я попытался сокращения числа Curl вызовов, а производительность сайта улучшились.но замораживание все еще происходит: \
Есть ли какие-либо сообщения в Windows Зарегистрируйтесь? – Stony
если и означает Httperr.log, нет, просто куча Timer_ConnectionIdle –
Нет, я имел в виду system log unter «Мой компьютер» -> щелкните правой кнопкой мыши -> Управление и там syslogs. Если сервер зависает, то в httperr.log нет сообщений – Stony