|
| Дата |
|
USD/RUB | 88.4375 | BTC/USD | 67453.9408 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
01.09.2009, 18:43
|
Start Post: Спамилка
|
hustle
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,870
Бабло: $1717315
|
Комуто интересно нечто подобное апостеру, без прокси забивает 100мбит канала влегкую, и проц с оперативкой сильно не жрутся. Проц на процентов 30%, оперативу не помню... но не много. При этом скорость 8к ресурсов в минуту. И сервер еще может работать нормально. Жаль нет возможности потестить на боле широком канале.
С прокси забивает 30мбит при 1000 потоках. 70мбит добивался тоже но жрет много оперативы (1500 потоков = 1.5 гига оперативы), НО проц всего 12-15%. Скорость 3к ресурсов в минуту на 1000 потоках, оперативы сжирает гиг примерно. На 1500 потоках умножайте.....но 2 гига оперативы мало уже.... уходит в своп. Скорость 5к/минута примерно на 1500 потоках.
Тестили на DualCore Xeon 2.33Ghz, 2GB RAM, Linux
Написана на пхп.
Ща сделали что работает на мозгах апостера и пробивает по актив базе.
Конечно с апостером оно пока что не сравниться но мало ли)))
По мере совершенствования буду отписывать ))
APOSTER:
40*40 потоков
30мбит забитого канала
спам через прокси с проверкой поста
60-70% CPU Load
920мб использованной оперативы
Моя Спамилка:
1000 потоков
30мбит забитого канала
спам через прокси с проверкой поста
10-15% CPU Load
1300мб использованной оперативы
Последний раз редактировалось Hector; 02.09.2009 в 01:22.
|
|
|
02.09.2009, 00:51
|
#22
|
учу php
Регистрация: 04.04.2008
Сообщений: 1,162
Бабло: $68290
|
Гектор, чтобы скрипт не жрал память - перед циклом форкания освобождай всё что можешь (потом наберёшь) + данные для нити получай внутри нити. Т.е. не въезжай в новый поток с общими данными.
__________________
Подпись??? Не продам!
|
|
|
02.09.2009, 01:06
|
#23
|
Ебланнед
Регистрация: 22.11.2007
Сообщений: 2,983
Бабло: $48575
|
гектор сам писал?
если сам, то ты вроде б пхп полгода назад начал учить
я ошибаюсь?
|
|
|
02.09.2009, 01:13
|
#24
|
hustle
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,870
Бабло: $1717315
ТС -->
|
ТС
Цитата:
Сообщение от JMen
Гектор, чтобы скрипт не жрал память - перед циклом форкания освобождай всё что можешь (потом наберёшь) + данные для нити получай внутри нити. Т.е. не въезжай в новый поток с общими данными.
|
Это не я писал, но я передам. Спасибо. Может поможет, тогда будет ваще бомба )
gcc я руковожу ) и плачУ
А так да - пол года назад начал. У меня есть более простые спамилки например спам вордпресс блогов. Этой спамилкой небыло времени заниматься... проще хорошему прогеру платить
|
|
|
02.09.2009, 10:00
|
#25
|
/dev/null
Регистрация: 16.09.2008
Адрес: Мариуполь / Украина
Сообщений: 803
Бабло: $2302714
|
Что-бы нежрало память нужно делать на неблокируемых сокетах, у меня с мулькурлом везет как утопленику он у меня постоянно течет, и я с ним не могу сделать что-бы постоянно поддерживалось необходимое кол-во потоков.
|
|
|
02.09.2009, 10:02
|
#26
|
Senior Member
Регистрация: 04.04.2007
Сообщений: 601
Бабло: $7700
|
Цитата:
Сообщение от Hector
forks + curl
|
форки это жесть
хочешь сказать у вас 1500 процессов запускается? Я как-то писал ранее, что форки это просто для удобства программиста, а ядро тем временем постоянно занимается тем, что переключается между процессами, копирует туда-сюда память и вообще делает лишнюю работу.
нужна эффективность = юзайте асинхронные сокеты, даже треды тормозят.
|
|
|
02.09.2009, 11:21
|
#27
|
hustle
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,870
Бабло: $1717315
ТС -->
|
ТС
Цитата:
Сообщение от XeonN
Что-бы нежрало память нужно делать на неблокируемых сокетах, у меня с мулькурлом везет как утопленику он у меня постоянно течет, и я с ним не могу сделать что-бы постоянно поддерживалось необходимое кол-во потоков.
|
мультикурл это вообще херня, на сокетах делать не хочецца
у меня такое предчувствие что на сокетах мы упремся в загрузку проца (аля апостер)
solar форки - это пока что лучшее решение что я для себя нашел, у меня масса скриптов на них работает, всё очень стабильно и предсказуемо )
|
|
|
02.09.2009, 11:31
|
#28
|
Senior Member
Регистрация: 04.04.2007
Сообщений: 601
Бабло: $7700
|
сокеты не грузят проц, они шлют данные по сети.
проц грузит переключение контекста между процессами(тредами), плохая логика программы, кривые регулярные выражения, кривой select(), кривые запросы к БД и т.д.
это ж прописные истины
|
|
|
02.09.2009, 11:33
|
#29
|
hustle
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,870
Бабло: $1717315
ТС -->
|
ТС
окей, пробанем сокетами, авось будет лучше
|
|
|
02.09.2009, 13:41
|
#30
|
Member
Регистрация: 25.03.2009
Сообщений: 36
Бабло: $2010
|
Hector, а чем собственно чем мulticurl херня ?
|
|
|
02.09.2009, 14:13
|
#31
|
Читатель
Регистрация: 23.11.2007
Сообщений: 420
Бабло: $48745
|
Я не Гектор, но отвечу от себя.
Я писал мультипоточный движок и на курле и на сокетах.
Минусы мультикурла:
- глючность и вылеты библиотеки при определенных условиях.
- глючные таймауты с коннектом через прокси (игнорирует устанавливаемое значение и использует внутреннее на 30+ секунд, особенно проблема всплывает с соксами)
- БЛОКИРУЕМЫЙ коннект (на 100% не уверен, но по наблюдениям и тестам так и есть)
- постоянные утечки памяти.
- невозможность принудительно закрыть соединение в процессе загрузки страницы (даже если вешать read handler, то из него курл не позволяет закрыть коннект)
Плюсы курла:
- готовая либа с полной реализацией ХТТП и ХТТПС
- относительная простота использования и логики написания
- внутренняя логика написана на си, соотв. скорость.
- встроенная поддержка всех типов прокси
-----------------------
Под сокетами мы понимаем чистые пхпшные обертки на сишными функциями, т.е. никаких fsockopen и стримов, поскольку в пхп НЕБЛОКИРУЮЩИЙ (асинхронный) коннект можно реализовать только на чистых сокетах.
Минусы сокетов:
- очень сложно-программируемая логика, требующая внимательности и полного понимания процесса.
- всю логику отсылки запросов и парсинг ответа приходится реализовывать самому (т.е. весь HTTP).
- если требуется HTTPS (на чистых сокетах, без стримов), то это практически анрил, из за отсутствии документации и нереального гемора при написании самому с нуля.
- при работе через соксы требуется знание протокола и отличие сокс4 от сокс5
Плюсы:
- скорость, скорость и еще раз скорость. грамотный сокетный движок шпарит так что мама не горюй и может забить весь канал который есть.
- возможность реализовать полностью асинхронный коннект.
- минимальное потребление ресурсов (опять же только при грамотном написании, со слипами, контролем за объемом данных и прочим)
- полный контроль над данными ответа (можно из ответа прочитать например первые N-байт и принудительно закрыть сокет) и запроса (нестандартные заголовки, нестандартный протокол и т.п.)
-------
Ну а, как писалось выше, форки и\или запуск копий скрипта - это верный пусть к полной загрузке сервака.
|
|
|
|