Сервер на 1000 multi-curl потоков

neznaika
На сайте с 28.06.2006
Offline
356
#21

Опять флудеры уводят интересное обсуждение в непонятную сторону

Дорого покупаю настоящие сайты. Не инвестирую деньги и не беру кредиты.
Слава Шевцов
На сайте с 23.07.2005
Offline
370
#22
Zonk:
Если multicurl обязателен...

Он не обязателен. Мне просто нужно выкачивать 1000 страниц в 30 секунд, минимально обрабатывать и класть в базу пару байт. У меня MySQL как-то плохо жила при 50 потоках на чтение и запись в одну и туже таблицу. А что будет при параллельном запуске 1000 скриптов... 😒

Неизменность точки зрения неизменно порождает иллюзию понимания.
N
На сайте с 06.05.2007
Offline
419
#23
У меня MySQL как-то плохо жила при 50 потоках на чтение и запись в одну и туже таблицу

Слава Шевцов, а innodb уже попробовали? и не забыли как для таблиц innodb важен правильный выбор primary key?

Кнопка вызова админа ()
Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#24

Надо найти программиста, который напишет на нормальном языке программирования нужную Вам программу и для ее работы не надо будет огромных ресурсов.

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
Слава Шевцов
На сайте с 23.07.2005
Offline
370
#25
netwind:
Слава Шевцов, а innodb уже попробовали? и не забыли как для таблиц innodb важен правильный выбор primary key?

Вот из-за "не забыли" я пользуюсь только MyISAM - там мне всё понятно, прозрачно и быстро. Обычно удаётся разделять таблицы на те, в которые в основном пишутся данные и те, из которых они в основном читаются. Хотя может в этом случае придётся на InnoDB перелезть 😒

Слава Шевцов добавил 19.12.2008 в 16:37

Boris A Dolgov:
Надо найти программиста, который напишет на нормальном языке программирования нужную Вам программу и для ее работы не надо будет огромных ресурсов.

Борис, Вы правильно пишете. Именно так и будет. Но чтобы программист написал что-то дельное, надо сначала разобраться в самой задаче, разобраться в вопросе стоимости поддержки и последующих доработок, написать дельное ТЗ и только потом что-то заказывать на нормальном (подходящем к задаче, а не программисту) языке. Вы как думаете? Или всё это отдать программисту-технарю?

N
На сайте с 06.05.2007
Offline
419
#26

Слава Шевцов, насколько я вижу, вам нужен innodb просто обязательно. только параметры innodb подкрутить.

поведение первичных ключей innodb на самом деле просто копирует поведение больших коммерческих субд. я имею ввиду, что первичный ключ должен быть простой и монотонно возрастать при массивной вставке данных.

edogs software
На сайте с 15.12.2005
Offline
775
#27
Слава Шевцов:
Он не обязателен. Мне просто нужно выкачивать 1000 страниц в 30 секунд, минимально обрабатывать и класть в базу пару байт. У меня MySQL как-то плохо жила при 50 потоках на чтение и запись в одну и туже таблицу. А что будет при параллельном запуске 1000 скриптов... 😒

Есть у нас граббер к одной онлайн игрушке ( http://abazaba.ru/travian ), один поток может обрабатывать до 15к запросов за 10 минут, 2 потока может обрабатывать до 20к запросов за 10 минут, страницы до 10кб размером, скачивается - идет разбор регуляркой - идет запись в БД. На обычном курле, не на мульти. С пингами там правда очень бодро, сайты для граббинга по ИП запрашиваем, что бы на резолвинг не тратиться... да и находятся грабящиеся сайты то ли в том же ДЦ, то ли в соседнем здании. Но были бы больше пинги, поставили бы просто больше потоков, не принципиально. Сервера был вот такой http://www.hetzner.de/hosting/produkte_rootserver/ds3000-ce/ . Работал полгода, недавно "проапгрейдили" до вдс (50% ресурсов) на таком ttp://www.hetzner.de/hosting/produkte_rootserver/ds8000/ полет нормальный.

Слава Шевцов:
Никак не могу понять, что за сервер нужен. Требуется на PHP5 с multi-curl скачивать страницы в 1000 потоков размером по 30-50 Кб. Никаких прокси нет. Пинг минимальный, но могут попадаться временно притормозившие сайты. На скачанных страницах ищется через strpos ключевое слово и после этого страницы уничтожаются, а флаг проверки кладётся в MySQL на внешнем сервере. Сколько нужно памяти и что за машинка?
Слава Шевцов:
Вот из-за "не забыли" я пользуюсь только MyISAM - там мне всё понятно, прозрачно и быстро. Обычно удаётся разделять таблицы на те, в которые в основном пишутся данные и те, из которых они в основном читаются. Хотя может в этом случае придётся на InnoDB перелезть 😒
Слава Шевцов добавил 19.12.2008 в 16:37
Борис, Вы правильно пишете. Именно так и будет. Но чтобы программист написал что-то дельное, надо сначала разобраться в самой задаче, разобраться в вопросе стоимости поддержки и последующих доработок, написать дельное ТЗ и только потом что-то заказывать на нормальном (подходящем к задаче, а не программисту) языке. Вы как думаете? Или всё это отдать программисту-технарю?

Исходя из того, что Вы сказали выше - Вы уже решили что язык будет пхп5, а метод мультикурл.

Но честно говоря, мы бы подумали о несколько другом программерском решении задачи. Даже если речь о пхп.

Вместо курла, использовали бы сокеты напрямую. А мультизапросы делали бы через pcntl-fork, а не через курл-мульти.

Возможно вместо запуска кучи потоков для избежания пинго-ожидания, поставили бы таймаут на запрос небольшой, и если запрос не выполнен, то переходим к следующему запросу, а "не успевший" ставим в конец очереди, с бОльшим таймаутом.

Что бы сэкономить на написании в базу, "временные" результаты или собирали бы в переменную (а в конце скрипта писали бы скопом в базу) или поставили бы мемкэшед (и писали бы данные туда, а потом, иногда выгружали бы в базу, уже другим скриптом).

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
Derek
На сайте с 23.09.2005
Offline
70
#28

задача не сложная. здесь нужен грамотный сетевой программист. ему стоит сказать - нужно в параллельном режиме скачивать страницы X и делать с ними Y. желательная производительность Z страниц в секунду. но это стоит денег и маловероятно, что подходящие спецы будут здесь или на каком-нить фрилансе окусываться.

(.)(.) или ( Y ) ? (http://www.realderek.ru/) : как заработать 20 миллионов долларов США за 2 года (http://www.realderek.ru/2010/04/20-millions-za-2-goda.html)
Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#29
Слава Шевцов:
Борис, Вы правильно пишете. Именно так и будет. Но чтобы программист написал что-то дельное, надо сначала разобраться в самой задаче, разобраться в вопросе стоимости поддержки и последующих доработок, написать дельное ТЗ и только потом что-то заказывать на нормальном (подходящем к задаче, а не программисту) языке. Вы как думаете? Или всё это отдать программисту-технарю?

Разобраться в задаче действительно надо. Как без этого можно вообще говорить о задаче? :)

curl+php вижу совсем не оптимальной связкой для высоких нагрузок, программа на c, работающая с соединениями через какой-либо поллинг (того же select для 1000 одновр. соединений вполне хватит), будет работать в разы быстрее и потреблять в разы меньше ресурсов. Знающим человеком решается быстро.

euhenio
На сайте с 21.09.2001
Offline
357
#30

Работайте с неблокирующими сокетами. Та же параллельная выкачка, только геморройнее: обрабатывать редиректы и хедеры отделять, и куки. Но может, вам это не надо.

800 параллельных нормально работают на не очень мощной машине. Думаю, число только от мемори зависит.

с ув., Евгений Трофименко seo блог Trofimenko.ru ( http://trofimenko.ru/ ) но ыыы мало обновляется... Tools.Promosite.ru - анализатор апдейтов Яндекса (пожертвуйте лимиты на Яндекс.XML! ( https://searchengines.guru/ru/forum/801888/page7#comment_11942489 )) Konvr.ru - увеличение конверсии сайта на 81% за 4 недели ( http://konvr.ru/ )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий