Как прикинуть предельные возможножности программы

Тема в разделе "Как сделать...", создана пользователем chang, 16 мар 2012.

  1. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    Здравствуйте

    суть такова:
    необходимо автоматизировать одну монотонную работу на сайте, для чего и пишется "бот"
    php/curl/mysql

    боту нужно выполнить около 20 шагов: 20 запросов к внешнему сайту get/post
    с последующим разбором результата регулярками
    + 2-3 простых SQL- запроса


    на первых порах заказчик планирует таким макаром обрабатывать 10 000 акков
    но в дальнейшем думает увеличить до 100 000

    вопрос:
    как правильно прикинуть способен ли вообще "бот" такое сделать?
    уложится во время и пропускную возможность сети
     
  2. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    а что, ВСЮ эту работу скрипту(программе) необходимо сделать за пару секунд ?

    а прикинуть легко - посмотреть за какое время прога уложится с 100-ней акков и далее умножать полученное время на коэффициент от 100 [ для двухсот - это 2 :) ]

    еще есть такое понятие как бан по ip за dos атаку (т.е. из за огромного количества запросов в ограниченный промежуток времени с одного ip "сервер" может забанить на какое-то время этот ip )
     
  3. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    возьмите один тестовый акк, и зациклите выполнение ботом операций с этим акком столько раз, сколько Вам нужно...
    PHP:
    function bot_work($akk){
    ....
    скрипт Вашего бота
    ...
    }
    for(
    $i=0$i<=100000$i++){
    bot_work($akk);
    }
     
  4. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    за сутки
    но выходит (24*60*60) / 100000 = 0.864 сек. на акк
    1 запущенный экземпляр бота явно не вытянет, + задержка от прокси -(
    а вот как на счет трафика? куда собсно смотреть нужно?

    заказчик желает услышать приблизительный оценки до наступления работы


    dino скрипта еще нет, да и тестовых акков нет и в той системе с которой нужно работать их создать нельзя
    короче нужна математическая прикидка а не экспериментальный замер
     
  5. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.068
    Симпатии:
    197
    а как вы математически прикинете? Ведь по большому счету 60% работы вашего скрипта зависит от того сервиса с которым он будет работать. Сегодня этот сервис будет работать быстро, а завтра будет тупить и время отдачи контента возрастет. Так что пока не попробуете не узнаете. Подсчитать не получится даже приблезительно
     
  6. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    Для решения проблемы можно использовать мультикурл. В этом случае одновременном можно будет "ботить" от нескольких акков, правда опять же есть некоторые ограничения.
     
  7. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    99.99% времени работы скрипта будет зависеть от 20 запросов к внешнему сайту get/post - соответственно вот вам и критерий оценки. напишите скрипт, который делает только эти запросы, без анализа регулярками и запросов к базе и анализируйте работу этого скрипта - время, трафик, прочее.

    ответ выше.
     
  8. AlexMist

    AlexMist Создатель

    Регистр.:
    17 ноя 2009
    Сообщения:
    49
    Симпатии:
    7
    Еще можно порекомендовать проверить возможность вытягивания данных не путем загрузки всей страницы, а через ajax.
     
  9. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    А это то тут при чем? Скрипт запускается один раз и в цикле прогоняет столько запросов сколько нужно... аякс тут не панацея!
     
  10. AlexMist

    AlexMist Создатель

    Регистр.:
    17 ноя 2009
    Сообщения:
    49
    Симпатии:
    7
    Я имею ввиду , что на многих сайта можно вытянуть только ту инфу которая нужна, REST api или еще что то.