Перейти к публикации
  • 0
seodonor

От чего ж зависит скорость?

Вопрос

seodonor

Сижу и понять не могу от чего ж все-таки зависит скорость прогона.

К примеру, делаю прогон в 20 потоков в среднем уходит 2 часа.

Поставил 40 потоков. По идее должно быть в 2 раза быстрее, но нет. Выходит, что скорость осталась той же.

Хотя нагрузка цп в районе 75%. Выходит есть какой-то еще фактор, который влияет на скорость. И это не цп, ссд, оперативная память, а что-то еще. Я так думаю что-то в настройках программы.

Сразу же еще напишу, что использовалась рукаптча.

И настройки почты прикладываю в виде скриншота. Все остальные настройки по дефолту стоят.

Как тогда увеличить скорость прогона?

2016-07-20_17-54-48.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0
matrix-zp

Дело только в звездах  :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Administrator

30 потоков означают, что будет запущено одновременно 30 выполняющихся сайтов. Каждый новый поток открывается с задержкой в 2-10 секунды.Соответственно, если вы ставите 10 сайтов и запускаете 30 потоков, никакой разницы вы не увидите.

Количество потоков влияет на скорость выполнения в динамике времени, за один и тот же период можно сделать больше. И мерить подобное по времени размещения 1 ссылки - крайне странно и неправильно. Так же о том, что влияет на время выполнения, уже отвечал в соседнем топике:

Можете почитать. Не смотря на то, что речь идёт о стандартной версии там, многое относится и к премуим версии.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
seodonor
10 минуту назад, Administrator сказал:

30 потоков означают, что будет запущено одновременно 30 выполняющихся сайтов. Каждый новый поток открывается с задержкой в 2-10 секунды.Соответственно, если вы ставите 10 сайтов и запускаете 30 потоков, никакой разницы вы не увидите.

Количество потоков влияет на скорость выполнения в динамике времени, за один и тот же период можно сделать больше. И мерить подобное по времени размещения 1 ссылки - крайне странно и неправильно. Так же о том, что влияет на время выполнения, уже отвечал в соседнем топике:

Можете почитать. Не смотря на то, что речь идёт о стандартной версии там, многое относится и к премуим версии.

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

Я нигде не писал скорость выполнения 1 сайта.

Я замерял на 50 сайтах. Вывел просто значение при разных потоках на размещение 1 ссылки.

Точно такие же тесты я замерял на 14 потоках и 20 потоках. И выборка была 373 сайта. Разницы по времени я не увидел. При 20 потоках должно было быть быстрее в 1,42 раза. Но этого не произошло. И это все при одинаковых настройках.

Допустим при 15 потоках 300 сайтов пройдет за 2 часа. То 30 потоков по идее должен пройти за 1 час (пусть даже там погрешность в 10 минут будет). Но нифига такого не происходит. По моим подсчетам оптимальное количество потоков около 15 (+-5). Все, что выше не дает никакого увеличения скорости.

Я вчера специально выгрузил все не нужные программы из памяти. Позакрывал все приложения. Оставил только софт и все. Остальное все закрыто. Нагрузка на цп была в районе 0,5%. Выставил 40 потоков. Обычно прогон делаю в 20 потоков. Собственно я ожидал ускорение в 2 раза, т.к. потоков в 2 раза больше. Но этого не произошло. Прошел час, а софт дошел почти до половины. А должен был уже закончить. По рассчетам.

Если бы это был единичный случай - я бы не писал. Но выходит, что это систематическая вещь. Возможно это баг в самой программе или какие-то настройки влияют на то, что скорость не увеличивается. Я не знаю, но факт остается фактом.

Тесты проводились на 3 разных пк. Если бы дело было в железе, то вопросов не было. Но раз на всех пк был примерно одинаковый результат, то значит проблема есть и ее нужно решить.

26 минуты назад, Administrator сказал:

30 потоков означают, что будет запущено одновременно 30 выполняющихся сайтов. Каждый новый поток открывается с задержкой в 2-10 секунды.Соответственно, если вы ставите 10 сайтов и запускаете 30 потоков, никакой разницы вы не увидите.

Количество потоков влияет на скорость выполнения в динамике времени, за один и тот же период можно сделать больше. И мерить подобное по времени размещения 1 ссылки - крайне странно и неправильно. Так же о том, что влияет на время выполнения, уже отвечал в соседнем топике:

Можете почитать. Не смотря на то, что речь идёт о стандартной версии там, многое относится и к премуим версии.

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

Может быть я дам базу и все настройки. Вы сделаете прогон. Засечете полное время. И потом мы рассчитаем время размещения 1 ссылки. Т.е. это отношение всего времени к количеству сайтов в базе. Потом в 1,5-2,0 раза больше потоков и также проверить. Если и у вас окажется результат примерно таким же и не увеличится в 1,5-2,0 (т.е. не будет быстрее), то выходит, что есть проблема и что-то реально не дает быстрее делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Administrator

Вы провели всего по одному тесту, а один тест - никогда не будет показательным. Может быть у вас почта долго доходила или что-то ещё было связанное с увеличением времени выполнения. Следующим нюансом является то, что программа загружает не только ЦП, проверяли ли вы нагрузку на HDD? может быть он не справляется с нагрузкой? Я не знаю, как вы проверяете, но разница точно есть в увеличение числа потоков. На тестовой машине 25 потоков и выполнение будет идти явно быстрее, чем при 15 потоках. Может быть в вашей базе сайт с плохим JS, который долго висит на месте и в итоге приводит к одинаковой нагрузке или много нерабочих сайтов. Выборка в 50 ресурсов, крайне маленькая, чтобы точно отслеживать время. Кроме того, я убеждён, что вы провели всего по одному тесту и на основе одного теста, пишите наблюдения. Вот к примеру вы пишите в  1,42  раза быстрее, но вы могли просто уйти попить кофе, придти и не заметить. Как вы отслеживали время? Записали дату старта по информации компьютера, на котором запускали, затем посмотрели дату создания отчёта? Что-то мне подсказывает, что вы замеряли время на глаз, на это прежде всего указывает скриншот расчёта скорости "количество потоков" -> "Размещение 1 ссылки". Я не хочу снять какие-то моменты с программы, но вы буквально обвиняете, приводя примеры "На глаз".

Так же насколько помню, я именно вам писал, что программа оптимизирована под 20 потоков и большее число не является желательным, но допустимо, т.к. мы используем больше 20 потоков для ускорения тестов. И бывает ставим и 40 потоков под некоторые задачи.

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

1 час назад, goliafz сказал:

Я нигде не писал скорость выполнения 1 сайта.

На скриншоте это точно видно: "Размещение 1 ссылки", тем самым вы замеряли скорость выполнения 1 сайта. И при базе в 50 сайтов, это крайне сомнительный тест, если учесть, что на скорость выполнения могут повлиять множество факторов, которые расписано по ссылке, которую я уже приводил в теме.

1 час назад, goliafz сказал:

Может быть я дам базу и все настройки. Вы сделаете прогон. Засечете полное время. И потом мы рассчитаем время размещения 1 ссылки. Т.е. это отношение всего времени к количеству сайтов в базе. Потом в 1,5-2,0 раза больше потоков и также проверить. Если и у вас окажется результат примерно таким же и не увеличится в 1,5-2,0 (т.е. не будет быстрее), то выходит, что есть проблема и что-то реально не дает быстрее делать.

Или вот, вы опять даёте информацию по расчёту по 1 проставленной ссылки. Запуская в 30 потоков 50 сайтов, - это очень неправильный тест и из этого теста вы можете не увидеть прироста скорости при определённых условиях. Например, сразу выполнится 26 сайтов, остальные будут выполнятся на 5 минут дольше, тем самым освободилось 20 потоков, запустится ещё 20 сайтов, итого у нас не запущенных остаётся ещё 4. При определённом обстоятельстве, все 24 выполнятся примерно в одно время и будут запущены следующие 4 потока. Тем самым, максимальный отчёт времени будет расчитан по последним 4. А может быть так, что 30 запускаемых сайтов выполнятся одновременно, или примерно в равный период времени и запустятся следующие 20. Тем самым будет совершенно другое время. Каждая cms, каждый сайт имеет своё время выполнение и факторов, от которых зависит время выполнение - много.

  • Как быстро разгадают капчу.
  • Как быстро придёт письмо с ссылкой активации.
  • Как быстро будет загружен сайт, картинки.
  • Будет ли вообще доступен сайт, например он может не отвечать, что так же увеличит время выполнения.

И это только часть базовых моментов, которые указывают, что выборка 50 сайтов и 30 потоков с замером времени выполнения - является крайне неправильным тестом и совершенно не показательным. При такой выборке можно не увидеть разницу в скорости, при определённых моментах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
seodonor
1 час назад, Administrator сказал:

Вы провели всего по одному тесту, а один тест - никогда не будет показательным. Может быть у вас почта долго доходила или что-то ещё было связанное с увеличением времени выполнения. Следующим нюансом является то, что программа загружает не только ЦП, проверяли ли вы нагрузку на HDD? может быть он не справляется с нагрузкой? Я не знаю, как вы проверяете, но разница точно есть в увеличение числа потоков. На тестовой машине 25 потоков и выполнение будет идти явно быстрее, чем при 15 потоках. Может быть в вашей базе сайт с плохим JS, который долго висит на месте и в итоге приводит к одинаковой нагрузке или много нерабочих сайтов. Выборка в 50 ресурсов, крайне маленькая, чтобы точно отслеживать время. Кроме того, я убеждён, что вы провели всего по одному тесту и на основе одного теста, пишите наблюдения. Вот к примеру вы пишите в  1,42  раза быстрее, но вы могли просто уйти попить кофе, придти и не заметить. Как вы отслеживали время? Записали дату старта по информации компьютера, на котором запускали, затем посмотрели дату создания отчёта? Что-то мне подсказывает, что вы замеряли время на глаз, на это прежде всего указывает скриншот расчёта скорости "количество потоков" -> "Размещение 1 ссылки". Я не хочу снять какие-то моменты с программы, но вы буквально обвиняете, приводя примеры "На глаз".

Так же насколько помню, я именно вам писал, что программа оптимизирована под 20 потоков и большее число не является желательным, но допустимо, т.к. мы используем больше 20 потоков для ускорения тестов. И бывает ставим и 40 потоков под некоторые задачи.

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

На скриншоте это точно видно: "Размещение 1 ссылки", тем самым вы замеряли скорость выполнения 1 сайта. И при базе в 50 сайтов, это крайне сомнительный тест, если учесть, что на скорость выполнения могут повлиять множество факторов, которые расписано по ссылке, которую я уже приводил в теме.

Или вот, вы опять даёте информацию по расчёту по 1 проставленной ссылки. Запуская в 30 потоков 50 сайтов, - это очень неправильный тест и из этого теста вы можете не увидеть прироста скорости при определённых условиях. Например, сразу выполнится 26 сайтов, остальные будут выполнятся на 5 минут дольше, тем самым освободилось 20 потоков, запустится ещё 20 сайтов, итого у нас не запущенных остаётся ещё 4. При определённом обстоятельстве, все 24 выполнятся примерно в одно время и будут запущены следующие 4 потока. Тем самым, максимальный отчёт времени будет расчитан по последним 4. А может быть так, что 30 запускаемых сайтов выполнятся одновременно, или примерно в равный период времени и запустятся следующие 20. Тем самым будет совершенно другое время. Каждая cms, каждый сайт имеет своё время выполнение и факторов, от которых зависит время выполнение - много.

  • Как быстро разгадают капчу.
  • Как быстро придёт письмо с ссылкой активации.
  • Как быстро будет загружен сайт, картинки.
  • Будет ли вообще доступен сайт, например он может не отвечать, что так же увеличит время выполнения.

И это только часть базовых моментов, которые указывают, что выборка 50 сайтов и 30 потоков с замером времени выполнения - является крайне неправильным тестом и совершенно не показательным. При такой выборке можно не увидеть разницу в скорости, при определённых моментах.

Выборка 100 сайтов и количество потоков 10, 15, 20, 25, 30 является верной?

Я на данный момент провожу уже тестирование и все данные складирую и записываю. Собственно картина снова повторяется. То, что софт оптимизирован до 20 потоков - это верно. Взаимосвязь прослеживается. Но вот 20 и более - картина совершенно другая.

Я ни в коем случае не хочу написать что-то плохое о софте. Я, наоборот, заинтересован в его развитии. И если мои действия и тесты поспособствуют этому, то это ведь будет для всех только плюсом. Вполне вероятно, что есть какой-то баг, которые забирает много времени.

Один баг я уже нашел - это долгое завершение в конце. В среднем около 15 минут завершает последний поток. Поэтому в тестах я это время не учитывал совсем. Как только доходило до 98/99 завершенных - записывал время конца прогона.

Как закончу тесты - предоставлю все данные для анализа. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
seodonor

Закончил тесты.

Согласно тесту оптимальное количество потоков от 15 до 20. Все, что выше не дает никакого ускорения или ускорение не значительное. По крайней мере в моем случае.

Для теста использовалась одна и та же база на 100 сайтов. Все мыла рамблер. Рукаптча. Остальные настройки все были одинаковыми, кроме потоков. Отключен Адгуард и АВ. В это время пк не использовался для работы. Версия 411.

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

Для анализа в личку вышлю все данные. Вдруг что-то найдете.

2016-07-21_23-26-24.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Administrator
45 минуты назад, goliafz сказал:

Один баг я уже нашел - это долгое завершение в конце. В среднем около 15 минут завершает последний поток. Поэтому в тестах я это время не учитывал совсем. Как только доходило до 98/99 завершенных - записывал время конца прогона.

Как закончу тесты - предоставлю все данные для анализа. :)

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

6 минут назад, goliafz сказал:

Закончил тесты.

Согласно тесту оптимальное количество потоков от 15 до 20. Все, что выше не дает никакого ускорения или ускорение не значительное. По крайней мере в моем случае.

Как не даёт. Лично использую 25 потоков и разница значительна, между 15 и 25. Я вам уже написал много раз причины, почему такое может быть. Именно то, что в вашей базе у вас есть сайт с кривым JS и приводит к тому, что у вас проблемы с скоростью. Пожалуйста, разберитесь с этим моментом. С огромной долей вероятности данный сайт не попадёт в лог успешных и следовательно, не нужно его ставить на повторное выполнение. Попробуйте по заведомо успешным провести тестирование. 

Не знаю, как ещё нужно объяснить, я ведь изначально писал о подобных моментах, что в случае, если в вашей базе есть подобное, то все тесты с небольшим количеством ресурсов будут заведомо не точными. Проведите тестирование на 1000-2000+ ресурсах, где 15 минутный тайминг не будет столь яро выражаться и где можно наглядно увидеть, что разница в скорости выполнения - есть. Вы так же можете отследить и по цифрам, которые меняются в счётчике пройденных / успешных сайтов. Разница явно будет. Но так, как вы проводите тестирование сейчас - это крайне неправильный подход и я уже объяснил почему. Если вы будете тестировать на заведомо успешных, без сайтов с кривым JS - тогда да, вы сможете быть объективными в оценке. Сейчас же объективность теряется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • -1
seodonor

Может быть можно подкрутить настройки какие, чтобы можно было все же 40 потоков освоить? А то выходит, что вся мощь железа теряет смысл, т.к. мало толку от количества запущенных потоков.

Вот для примера (была база из 50 сайтов). Первые 3 теста на старом железе. Нижние тесты на новом железе.

Как видно количество потоков не влияет пропорционально скорости размещения почему-то.

Вот я и пытаюсь понять что же все-таки влияет на скорость.

2016-07-20_20-58-12.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

×
×
  • Создать...