2010-11-24 4 views
0

Я выполняю эту определенную задачу, которая включает в себя отправку 6 наборов по 8 запросов для каждого пользователя и в общей сложности около 2000 пользователей. Это куча GET-запросов, используемых для отправки команд.Уменьшение использования процессора cURL

Чтобы ускорить отправку, я построил 4 винта с несколькими ручками, каждый из которых содержит 8 запросов, один из которых выдает их один за другим, а затем продолжает работу со следующим пользователем. Небольшая проблема заключается в том, что он потребляет 99% моего процессора и потребляет около 5 кбит/с в моей полосе пропускания. Там нет утечек или чего-то еще, но при отправке 96000 запросов он отстает от времени, занимая около 3 часов на двухъядерном процессоре AMD Phenom.

Есть ли какие-либо методы, которые я могу ускорить? Использование file_get_contents() вместо cURL заканчивается на 50% медленнее. Но cURL использует только 5 кбит/с и выдает мой процессор.

ответ

0

Вы пытались использовать fopen() для своих запросов вместо завитки? Это также может быть связано с тем, когда вы отправляете запросы? Он не вернется, пока веб-сервер не завершит запрос. Вам нужны данные для представления пользователю, если нет, можете ли вы запустить запросы в фоновом режиме? Реальный вопрос в том, почему вы отправляете столько запросов, и было бы гораздо лучше объединить их в меньшее количество запросов. У вас есть много переменных в этой настройке, которые могут способствовать скорости.

Смежные вопросы