Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Огромное кол-во подключений к серверам... вопрос производительности 
:(
    Опции темы
fara
Дата 30.5.2005, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 15.3.2004
Где: С.-Петербург

Репутация: 1
Всего: 2



имеется список прокси серверов (допустим их 100).
необходимо сгенерировать по 20 заходов на один и тот же сайт с каждого из прокси.

как оптимизировать работу такого скрипта?
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший!
PM MAIL ICQ   Вверх
Opik
Дата 30.5.2005, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



да делай просто:
Код

$proxy = $proxy_list[mt_rand(0, sizeof($proxy_list))];

будет даже лучше каждый раз новый прокси, с тем учетом, что mt_rand повторяет реже. smile
PM MAIL Skype   Вверх
Mal Hack
Дата 31.5.2005, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



А если просто цикл с шагом 5?
PM ICQ   Вверх
fara
Дата 31.5.2005, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 15.3.2004
Где: С.-Петербург

Репутация: 1
Всего: 2



Похоже что народ меня не понял правильно.
Под описанную задачу я написал вот такой код (но он работает ессно долго и safe_mode=off)

Код

define("FILE_PROXY", "proxy_list.txt");

set_time_limit(0);
$ch = curl_init();

$fp = fopen(FILE_PROXY, "r");
while (!feof($fp)) {
    $ip = fgets($fp);
    $ip = trim($ip);

    for ($i = 0; $i < 20; $i++) {
        curl_setopt($ch, CURLOPT_URL, "http://hey.loosely.net/soojung/");
        curl_setopt($ch, CURLOPT_REFERER, "http://google.biz");
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_NOBODY, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 6);
        curl_setopt($ch, CURLOPT_PROXY, $ip);
        
        curl_exec($ch);
        
        $status = curl_error($ch);
        if (!empty($status)) {
            // error has occured
            $status .= " (proxy: <font color=red>$ip</font>)<br/>";
        }
        else {
            $status = "$ip - good<br/>";
        }
        echo $status;
        flush();
    }
}
fclose($fp);

// close curl resource, and free up system resources
curl_close($ch);


Это сообщение отредактировал(а) fara - 31.5.2005, 22:42
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший!
PM MAIL ICQ   Вверх
Mal Hack
Дата 31.5.2005, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Код
        curl_setopt($ch, CURLOPT_TIMEOUT, 6);

Вот это убыстрит, уменьшение значения...
Отдели цикл чтения из файла от цикла прохода про проксям.
PM ICQ   Вверх
fara
Дата 1.6.2005, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 15.3.2004
Где: С.-Петербург

Репутация: 1
Всего: 2



И как по вашему эти действия повлияют на быстродействие???

Решение было найдено в том, чтобы создавать несколько параллельных процессов.
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший!
PM MAIL ICQ   Вверх
IZ@TOP
Дата 1.6.2005, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



fara, а немного, эти 6 секунд таймаута? Если сервер занят и не откликнулся в течении, хотя бы одной секунды, тогда дальше смысла ждать не имеет.

Я когда писал проверку ftp серверов нашей сети, в онлайне они или нет, столкнулся с проблемой таймаутов, у меня скрипт пахал более минуты. Пришлось делать через сокеты с таймаутом в 0.01.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 1.6.2005, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(IZ @ 1.6.2005, 13:16)
fara, а немного, эти 6 секунд таймаута? Если сервер занят и не откликнулся в течении, хотя бы одной секунды, тогда дальше смысла ждать не имеет.

Я думаю тут 1 секунды мало будет... Все-таки сервер удаленный, плюс через Прокси идет. За 3-4 сигнал должен пройти, но за 1 может не успеть.

Для ЛВС - да, 1 в самый раз.
PM ICQ   Вверх
fara
Дата 1.6.2005, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 15.3.2004
Где: С.-Петербург

Репутация: 1
Всего: 2



Я просто в одном месте нарыл что для подключения к прокси максимум можно ставить таймаут 6 сек. вот и поставил.
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший!
PM MAIL ICQ   Вверх
Mal Hack
Дата 1.6.2005, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(fara @ 1.6.2005, 14:41)
Я просто в одном месте нарыл что для подключения к прокси максимум можно ставить таймаут 6 сек. вот и поставил.

Это от каналов связи зависит от растояния между серверами.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0965 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.