Помогите увеличить производительность ZennoPoster

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
236
Благодарностей
205
Баллы
43
Всем привет.

Есть вот такой пк:
Стационарный ПК со следующими характеристиками:
- двухпроцессорная материнская плата JINGSHA x99;
- 2 процессора Intel Xeon E5 2680 V3 2,5 ГГц;
- 7 планок серверной оперативной памяти DDR4 REG ECC PC4-2133P по 16 Gb каждая (в сумме 112 Gb).
- видеокарта Radeon RX 570 8 Gb.

И есть вот такой шаблон:
Шаблон на ZennoPoster для рассылки сообщений в директ Instagram, работающий на Web (не api, не запросы). Сам шаблон максимально оптимизирован для более стабильной, безопасной для аккаунтов и "легкой" для системы работы.

Особенности работы:
- все данные по аккаунтам (лог, пасс, мыло и цифры статистики) содержаться в БД MySQL;
- шаблон активно использует профили zennoposter (загружает при начале работы и сохраняет по завершению);
- username аккаунтов, которым будет идти рассылка, содержатся в текстовом файле;
- ведётся "чёрный список" кому уже были отправлены сообщения (в таблицу/текстовый файл записывается username получателя, дату и время отправки сообщения). Чёрный список ведётся с целью исключения повторной отправки сообщений одним и тем же получателям;

Производительность:
Когда на ПК было 4 планки оперативной памяти (64 Gb) я запускал вышеописанный шаблон в 75 потоков.
При такой нагрузке процессор использовался на 20%, а память на 90%.
Количество отправленных сообщений за 1 час составляло около 2300 штук.

Когда приобрёл дополнительные планки памяти (удалось поставить дополнительно ещё 3 планки, а не 4 как планировал, так как один из слотов под память на материнской плате не работает) начал тестировать шаблон уже с бОльшим количеством запускаемых потоков при тех же входящих настройках (паузах между отправками и так далее). И заметил, что объём отправляемых сообщений увеличился совсем не на много. Для примера: я запустил шаблон в 100 потоков и скорость отправки составила всего 2400 сообщений в час. Попробовал запустить шаблон в 150 потоков, скорость составила всего 2500 сообщений в час. При этом загруженность процессора не превышала 40%, а памяти 85%.

Что ещё пробовал:
Я пробовал клонировать шаблон и запускать одновременно их работу с той же базой аккаунтов, но с разными файлами для работы (текстовый файл получателя, файл чёрного списка). Результат оказался ещё хуже. Оба шаблона я запустил в 50 потоков (всего 100 потоков) и суммарно за час они отправляли не более 1600 сообщений.

Важно:
Тесты я проводил не один час. Шаблоны крутились по 7-10 часов и на основе имеющихся данных я выводил средние значения объёмов отправок.
Прокси используются мобильные, они приватные и работают исправно, в шаблоне реализована такая функция, что даже если прокси отваливался, то он менялся на рабочий.

Вопрос:
Почему такая сильная разница (в худшую сторону) в объёмах отправок сообщений при увеличении числа потоков?

Как можно увеличить производительность? Ведь по идее, если при 75 потоках шаблона отправляет 2300 сообщений, то при 150 потоках он должен отправлять 4600 сообщений.

Что можно оптимизировать? Только не пишите, пожалуйста, что шаблон нужно переводить на post/get запросы. Ни один из многих специалистов, к которым я обращался, сделать этого не смог.

Как думаете, проблема в ZennoPoster, шаблоне или ПК?

Всех заранее благодарю за ответы/советы/рекомендации/помощь.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
ну тут без расширенного лога не разобраться. (это типа без бутылки не вкурить :-) шутка )
Озадачься расширенным логом, с таймингом с нумерацией потоков, записывай сообщения в лог в ключевых точках, до загрузки профиля, после загрузки, после захода на сайт, перед отправкой сообщения, после отправки.
нумеруй эти ключевые точки. и потом сможешь проанализировать где у тебя в шабе начинаются тормоза при увеличении потоков.

как вариант можно даже сделать кубик который будет считать время между его вызовами и настроить запись в ключевых точках в отдельный файл. легче анализировать потом. будут файлы 1.txt, 2.txt .... и в нем строки с высчитанным временем выполнения данного ключевого места. я так однажды анализировал время загрузки профилей в зенке. результат конечно был не однозначный. одни профили грузились 4-8 секунд, другие по 120 секунд.
 
Последнее редактирование:
  • Спасибо
Реакции: j2082192 и Jeronimo

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
236
Благодарностей
205
Баллы
43
Кстати, заметил интересный момент - когда тестил работу шаблона в 170 потоков, то через минут 10-15 все потоки попросту зависли. Запустил трассировку - зависли на этапе сохранения профиля Zennoposter.

P.S. А вообще как-то можно исключить работу с файлами профилей? Просто сохранять, а потом и загружать все данные из БД MySQL, к примеру? Может ли это негативно повлиять на работу с самим аккаунтами инсты?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Кстати, заметил интересный момент - когда тестил работу шаблона в 170 потоков, то через минут 10-15 все потоки попросту зависли. Запустил трассировку - зависли на этапе сохранения профиля Zennoposter.

P.S. А вообще как-то можно исключить работу с файлами профилей? Просто сохранять, а потом и загружать все данные из БД MySQL, к примеру? Может ли это негативно повлиять на работу с самим аккаунтами инсты?
да сохранение профиля тоже очень затратное дело по времени. я в своих проектах даже сделал ограничение на сохранение профиля раз в сутки. чисто для поддержания кук авторизации на сайте.
на форуме есть решения загрузки/выгрузки профиля в БД, если интересно то поищите. Но, как всегда есть но. проблема то не в файлах, а в инстансе. тормоза и зависания происходят при обращении к данным инстанса, а тут ничего не сделаешь, это вотчина программеров зеннолаб.
 
  • Спасибо
Реакции: Jeronimo

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
У меня было подобное при масштабировании. Начал сравнивать файлы трассирования при 10 потоках и потом при 100 потоках. Увидел, что в несколько раз увеличились тайминги обращения к спискам. И хоть у меня там SSD+RamDisk, зенка долго думала из-за общих Lock даже для разных шаблонов. Пришлось переделать обращения к спискам в активных шаблонах на индивидуальные локи как в этом топике:
https://zennolab.com/discussion/threads/osobennosti-ispolzovanija-standartnyx-lockov-dlja-mnogopotoka.44524/

Советую использовать такую же схему для анализа трасиовки и определения слабого звена где начинает «тупить» зенка на много-потоке.
 

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
236
Благодарностей
205
Баллы
43
У меня было подобное при масштабировании. Начал сравнивать файлы трассирования при 10 потоках и потом при 100 потоках. Увидел, что в несколько раз увеличились тайминги обращения к спискам. И хоть у меня там SSD+RamDisk, зенка долго думала из-за общих Lock даже для разных шаблонов. Пришлось переделать обращения к спискам в активных шаблонах на индивидуальные локи как в этом топике:
https://zennolab.com/discussion/threads/osobennosti-ispolzovanija-standartnyx-lockov-dlja-mnogopotoka.44524/

Советую использовать такую же схему для анализа трасиовки и определения слабого звена где начинает «тупить» зенка на много-потоке.
Просто хочу уточнить перед тем как начну переделывать шаблон:

В самом шаблоне у меня 13 списков и одна таблица.
Когда шаблон работает в 1 поток, то вопросов нет, данные в списках искажаться никак не будут, а что если будет запущено 100 потоков?

Для примера: в одном списке содержится список username, каждый из 100 потоков в разное (а может и в одно и тоже) время будет брать из этого списка строго последнюю строчку с её последующим удалением. При таком локе списка, как указано в топике, не будет ли такого, что некоторые из потоков возьмут одну и ту же последнюю строчку (с тем же самым содержимым)?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Увеличение мощности сервера - не выход
Выход взять идентичный +- сервер и вторую зенку, это будет х2
хоть заоптимизируйся, прирост будет максимум не большим...
2й сервак - выход
 

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
236
Благодарностей
205
Баллы
43
Увеличение мощности сервера - не выход
Выход взять идентичный +- сервер и вторую зенку, это будет х2
хоть заоптимизируйся, прирост будет максимум не большим...
2й сервак - выход
Добившись максимальной оптимизации имеющего шаблона, уже можно думать о втором серваке.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Думаю что загвозка в 2х вещах (в моем случае), но чем черт не шутит, думаю это распространенный вариант ....
1. с потоками увеличивается количество запросов к файлам/диску => задержки
2. пропускная способность моб проксей

у меня просто пример, от чего я припух, но потом вроде как и понял что логично.
было 180 потоков, шаб исполнялся 55-60к в сутки
при 135 потоках, шаб исполнялся 75-80к в сутки

и это один и тот же шаб без изменений

тайминги, мать их...
2й сервак - выход :-)
 

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
236
Благодарностей
205
Баллы
43
...
было 180 потоков, шаб исполнялся 55-60к в сутки
при 135 потоках, шаб исполнялся 75-80к в сутки

и это один и тот же шаб без изменений
...
Так вот я о том же. У меня при увеличении количества потоков снижается объём рассылаемых сообщений.
Вчера попробовал работать без блеклиста (минус несколько действий со списком) и как результат уже не 2300 сообщений в 75 потоков за 1 час, а 3800.

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

Ещё есть в мыслях всю инфу из зеннопрофиля записывать не в файл .zpprofile, а в бд как строку (ни у кого нет закладки по этой теме случайно?). Видел, что так делают, но тему пока не нашёл.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113

heks

Client
Регистрация
01.10.2013
Сообщения
1 204
Благодарностей
316
Баллы
83
пост запросы решат твою проблему и отключение браузера. на пост запросах удавалось до 1к потоков держать
на таком серваке
 
  • Спасибо
Реакции: Jeronimo

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
пост запросы решат твою проблему
это уже вторая тема где ты какаю-то ересь несешь, какие пост запросы, не думал что есть шаблоны где нужно только через веб делать?
может лучше не зенкой пользоваться, тупо чисты С++ ? тогда еще больше потоков можно будет сделать и в интернет не с сервера мощного выходить, а с холодильника
 

heks

Client
Регистрация
01.10.2013
Сообщения
1 204
Благодарностей
316
Баллы
83
Ты написал что шаблон работает на веб. Я тебе написал что если переведешь на пост запросы то явно увеличшь скорость хотя ты и сам это должен знать. Вопрос в другом "Сможешь ли ты это сделать или специалисты к которым ты еще не обращался?". или ты будешь со мной спорить что безбраузерная работа нагружает сервер точно так же как и работа с браузером?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Ты написал что шаблон работает на веб. Я тебе написал что если переведешь на пост запросы то явно увеличшь скорость хотя ты и сам это должен знать. Вопрос в другом "Сможешь ли ты это сделать или специалисты к которым ты еще не обращался?". или ты будешь со мной спорить что безбраузерная работа нагружает сервер точно так же как и работа с браузером?
а ничего что автор написал, что он обращался к спецам многим и они не смогли сделать на пост запросах ? и у него только один вариант с браузером работать.
 

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
236
Благодарностей
205
Баллы
43
пост запросы решат твою проблему и отключение браузера. на пост запросах удавалось до 1к потоков держать
на таком серваке
Спасибо за твоё мнение, оно имеет место быть, но я не зря в стартовом топике написал, что имеющийся шаблон работает исключительно на вебе. И, кстати, по характеристикам у меня почти такой же сервак как и у тебя. Правда у меня один слот на матери не работает :( Поэтому одна планка на 16 Gb так и осталась в своей коробочке....
 

ffeniks

Client
Регистрация
03.06.2016
Сообщения
312
Благодарностей
410
Баллы
63
это уже вторая тема где ты какаю-то ересь несешь, какие пост запросы, не думал что есть шаблоны где нужно только через веб делать?
Я конечно извиняюсь, что вмешиваюсь, но хотел бы навести на мысль.
Браузер работает через запросы, следовательно всё что делается в браузере - реализуется через запросы.

Поэтому формулировка, "нужно только через веб делать" - не совсем корректная, так как и любую эмуляцию, которая делается в "вебе" (браузере) можно на запросах эмулировать. Если я не прав, то с удовольствием выслушаю аргументацию. Ещё не встречал шаб, который нельзя было перевести на запросы. (в частоности я являюсь php разработчиком).

Поэтому совет, перевести шаб на запросы, для того чтобы увеличисть производительность - 100% верный.
Далее, уже действительно переписать на php/go/c++ или любой другой, для увелечения производительности.

На крайний случай, можно реализовать бОльшую часть на запросах, выключив браузер, а ту часть, которую не получается переписать - уже открывать внутренним (вторым) шабом с браузером.
 
  • Спасибо
Реакции: Metrix

sambukanuka

Client
Регистрация
17.09.2019
Сообщения
287
Благодарностей
97
Баллы
28
Не проще ли взять ПО под инсту и там выполнять все эти задачи?)
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Я конечно извиняюсь
еще один (facepalm)

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

тут просят дельного совета, а не демагогию разводить, любой маломальский баскетболист знает про пост геты, без очевидного тыканья пальцем

Не проще ли взять ПО под инсту и там выполнять все эти задачи?)
от куда вы беретесь
 
  • Спасибо
Реакции: Jeronimo и Phoenix78

sambukanuka

Client
Регистрация
17.09.2019
Сообщения
287
Благодарностей
97
Баллы
28
еще один (facepalm)

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

тут просят дельного совета, а не демагогию разводить, любой маломальский баскетболист знает про пост геты, без очевидного тыканья пальцем



от куда вы беретесь
От туда от куда и ты) человек спросил я ответил. Странная реакция у Вас, ну да ладно.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
От туда от куда и ты) человек спросил я ответил. Странная реакция у Вас, ну да ладно.
а где автор спрашивал совет про стороннии сервисы ? и где ваш совет по оптимизации работы шаблонов под зенку ?
 
  • Спасибо
Реакции: Jeronimo

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Я конечно извиняюсь, что вмешиваюсь, но хотел бы навести на мысль.
Браузер работает через запросы, следовательно всё что делается в браузере - реализуется через запросы.
ух ты, вот это да. А вот сделай ка шаблон на запросах, что бы мышка в вебвизоре двигалась и взаимодействовала с различными js элементами на странице.
 
  • Спасибо
Реакции: backoff и Jeronimo

Nord

Client
Регистрация
22.03.2012
Сообщения
2 406
Благодарностей
1 473
Баллы
113
всё что делается в браузере - реализуется через запросы
да, если знать, как генерятся все параметры, зарытые в сотнях строк обфусцированного JSа.
но на "сложных" сайтах возможность реализации этого стремится к нулю.
 
  • Спасибо
Реакции: backoff

ffeniks

Client
Регистрация
03.06.2016
Сообщения
312
Благодарностей
410
Баллы
63
Я понимаю ваше негодование 1,5 года назад я так же реагировал. Но когда мы написали решение рекапчи3 на запросах без использования сервисов, начинаешь по другому смотреть на реализацию проектов. Желаю и вам подобной ситуации)

да, если знать, как генерятся все параметры, зарытые в сотнях строк обфусцированного JSа.
Не нужно знать этого, достаточно знать всё что запрашивает сервер "сложного" сайта.
Смотрите какие данные формируются в браузере, с этими же данными отправляйте запросы.


в третьих - лично мой вопрос, перенеси эмуляцию мыши/свайпа на пост/геты
Эмуляция мыши нужна для реализации действий на стороне js для формирования данных, на сервер летят уже сгенерированные данные. Для реализации на запросах, эмуляция не требуется, требуется только генерация данных.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
ВСЁ - это нолики и единички ... Надо писать сразу на машинном языке, будет еще быстрее

Эмуляция мыши нужна для реализации действий на стороне js для формирования данных, на сервер летят уже сгенерированные данные. Для реализации на запросах, эмуляция не требуется, требуется только генерация данных.
все верно кэп, сколько уйдет времени в одного на весь распарсинг всех нужных js для понимания алгоритма и будущей генерации данных ... (риторический вопрос)
ааа "мы" написали, понятно
 

ffeniks

Client
Регистрация
03.06.2016
Сообщения
312
Благодарностей
410
Баллы
63
ух ты, вот это да. А вот сделай ка шаблон на запросах, что бы мышка в вебвизоре двигалась и взаимодействовала с различными js элементами на странице.
1. В топике речь идёт об инстаграмм, вебвизор... Серьёзно?
2. "различными js элементами на странице." - тоже запросы
3. Если рассматривать в общем ситуацию про вебвизор, то конечно нужно смотреть на задачу. Я говорил про промовские решения, решающие бизнес задачи. Если накручивать, обманывать - ещё и под авторизацией, то конечно подход будет другим.
 

ffeniks

Client
Регистрация
03.06.2016
Сообщения
312
Благодарностей
410
Баллы
63
все верно кэп, сколько уйдет времени в одного на весь распарсинг всех нужных js для понимания алгоритма и будущей генерации данных ... (риторический вопрос)
Вы просто сформулировали вопрос не точно, я дал на него ответ. Если вопрос в сложности, это не означает - невозможно. Вся цепочка зарпосов прослеживается, время и труд, как говорится.

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

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
1. В топике речь идёт об инстаграмм, вебвизор... Серьёзно?
2. "различными js элементами на странице." - тоже запросы
3. Если рассматривать в общем ситуацию про вебвизор, то конечно нужно смотреть на задачу. Я говорил про промовские решения, решающие бизнес задачи. Если накручивать, обманывать - ещё и под авторизацией, то конечно подход будет другим.
это был подъеб.... аж 3 пункта в ответ написал. (facepalm)

слушай... или сколько вас там вас (что за мы я так и не понял) , а чего ты/вы все про запросы то тут толдычишь ? вот автор прямо написал не предлагать на запросах. нет упорно что то всем тут доказать что запросы лучше. Ты/Вы реально не понимаешь, что автор не может справиться с запросами и не нашел тех кто может это сделать или просто свое самомнение тут подымаешь/подымаете ? Раз уж такой/такие крутые возьмись и сделай шаб для автора на запросах.
Столько уже тут нафлудил/нафлудили, а по теме автора ноль инфы. Прекращай/Прекращайте уже свой флуд про запросы уже.

тьфу задолбался писать ты/вы :-) сколько вас там на самом деле ? ты один или вас там целая компашка ? :-)
 

ffeniks

Client
Регистрация
03.06.2016
Сообщения
312
Благодарностей
410
Баллы
63
это был подъеб.... аж 3 пункта в ответ написал. (facepalm)

слушай... или сколько вас там вас (что за мы я так и не понял) , а чего ты все про запросы то тут толдычишь ? вот автор прямо написал не предлагать на запросах. нет упорно что то всем тут доказать что запросы лучше. Ты/Вы реально не понимаешь, что автор не может справиться с запросами и не нашел тех кто может это сделать или просто свое самомнение тут подымаешь ? Раз уж такой/такие крутые возьмись и сделай шаб для автора на запросах.
Столько уже тут нафлудил, а по теме автора ноль инфы. Прекращай уже свой флуд про запросы уже.
:-) на основной работе в команде, над своими проектами и сам и с партнёрами.
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)