Общие вопросы про облегчение потоков.



  • Системные ресурсы сервера не безграничны, особенно при множестве потоков. Вот я и подумал, как их можно облегчить. Вопрос, что действительно повлияет на производительность, а что нет. Тестировать пока нет времени.

    1. Запрет картинок.
    2. Удаление элементов DOM посредством js.
    3. Удаление промежуточных переменных через "выполнить код" delete var_variable;
    4. Уменьшение разрешения экрана до 320*240.

    Хотя наверное всё вместе и даст нужный результат.. Просто я сомневаюсь на счёт удалении переменных и элементов DOM страницы.



  • @Fox

    1. Поможет
    2. Вряд ли даст, так как елемент загрузится, а потом ты его просто удалишь
    3. Поможет только с переменными с большим объемом данных
    4. Чревато палевом разрешения и лишней прокруткой, в скрипт к каждому "Двигать мышь и кликнуть" нужно будет добавить скрол к елементу.

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



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

    У меня сайт по нагруженности равен примерно фейсбуку и максимум в 10 потоков работает на 4х ядерном vds от zomro (далее идет 100 загрузка cpu что не есть позволительно) и заметно что пик нагрузки при загрузке страниц. Можно предположить, что если каждый поток будет ждать предыдущий перед загрузкой страниц, то количество потоков можно увеличить в 4-5 раз.

    ЗЫ видел недавно сообщение от какого-то разраба, он утверждал что его софт для соц сети на C# с эмуляцией браузера тянет как минимум несколько сотен потоков, вот бы нам такое))



  • @venom777 вот если бы сделать, что-бы загрузка во втором потоке начиналась после окончания загрузки в первом и тд.



  • @denanotherday да такой автоматический метод был бы весьма удобен



  • @denanotherday said in Общие вопросы про облегчение потоков.:

    @venom777 вот если бы сделать, что-бы загрузка во втором потоке начиналась после окончания загрузки в первом и тд.

    так сделай, кто мешает то, для этого все уже есть в софте.
    в онапстарт создать ассоц. массив глобальная переменная, к-во ключей = к-ву потоков, значение ключа = статус загрузки страницы текущего потока.
    Перед загрузкой страницы, проверяй, смотри в глобальной переменной ключ-1 (предыдущий поток) статус его загрузки, если загружена страница, то в путь: грузи страницу в текущем потоке и меняй его статус.
    В итоге будет 2 поток ждать пока загрузится страница в Первом потоке, 3 - во втором и т.д.

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



  • @DrPrime На счёт удаления элементов DOM. Если на сайте есть активность - чат\напоминалки\уведомления.. Всё ведь включается для каждого потока и нагружает весь проект. Если логика скрипта подразумевает цикличное выполнение действий на одной странице, без перезагрузки. Думаю есть смысл по удалять всё это богатство.



  • @denanotherday > вот если бы сделать, что-бы загрузка во втором потоке начиналась после окончания загрузки в первом и тд.

    Да Это будет, также БАС перестанет создавать потоки если в системе мало ресурсов



  • @support Это радывает нас.



  • @support @DrPrime У меня проект работает в 45 потоков, жутко нагружая систему. У проекта есть админка, к которой потоки раз в 1-5 минут отправляют get-запрос, на разные php страницы. Типа reboot.php, в которой может быть цифра, и если это цифра равна номеру потока, то поток перезагружается. И прочим php страницам.
    Знаю, можно было сделать все опции на одной страницы и получать их post-запросом, но разбираться мне пока некогда.
    На сервере стоит xampp получается на каждый get-запрос он генерирует ответ исходя из php страницы.

    А не снизит ли нагрузку на железо, если BAS будет получать ответ из читать файл, чем получая ответ из get-запроса?



  • @Fox нет, легче ему не будет читать файл чем гет запрос



  • @smurfik Отнюдь! Переделал сейчас проект, убрал get-запросы к админке, производительность стала в разы выше, просто не узнать! Но я не тупо заменил одно на другое. Я выделил отдельный поток, который читает файлы раз в 1-5 минут и уже исходя из содержания файла устанавливает глобальную переменную. А все потоки периодически смотрят глобальные переменные.



  • Не понимаю. Купленный сервер vds 4 Ядра / 8000 МГц CPU / 13000 Мб ОЗУ / 100 Гб SSD / 1 IP / 1 Гбит/с Порт идеально работает с 20 потоками, но намертво зависает на 44..

    А в коридоре, на антресоли стоит сервер Intel Core 2 Quad Q6600, 2400 MHz / 5 Гб ОЗУ / 1000 Гб HDD / и интернет по вафле. А справляется один в один. Даже по загруженности одинаково..

    Целевой сайт работает на Node.js в связке с Socket.IO. Если я выполню запретить запрос с маской *, а разрешить только с домена сайта, то ни чего работать не будет. Приходится разрешать socket.io.js и тому подобные..
    Сам скрипт элементарный, все аккаунты загружают отпечаток, прокси, заходят на сайт и в цикле ждут новой записи в базе. А как появилась запись - вводят в форму и жмут отправить.. Всё!

    Запрещено, всё что можно запретить. Ни каких лишних телодвижений скрипт уже не делает, выполняет только 1 задачу. Пропуск кадров стоит !!1500!!. Данные в базу заносит другой скрипт BAS'a..

    Что ещё тут можно нах*й сделать? Ребят, у меня уже руки опускаются..
    Вдруг кто разбирается в Node.js и как можно ему отправлять post-запросы?



  • @Fox said in Общие вопросы про облегчение потоков.:

    Не понимаю. Купленный сервер vds 4 Ядра / 8000 МГц CPU / 13000 Мб ОЗУ / 100 Гб SSD / 1 IP / 1 Гбит/с Порт идеально работает с 20 потоками, но намертво зависает на 44..

    А в коридоре, на антресоли стоит сервер Intel Core 2 Quad Q6600, 2400 MHz / 5 Гб ОЗУ / 1000 Гб HDD / и интернет по вафле. А справляется один в один. Даже по загруженности одинаково..

    Целевой сайт работает на Node.js в связке с Socket.IO. Если я выполню запретить запрос с маской *, а разрешить только с домена сайта, то ни чего работать не будет. Приходится разрешать socket.io.js и тому подобные..
    Сам скрипт элементарный, все аккаунты загружают отпечаток, прокси, заходят на сайт и в цикле ждут новой записи в базе. А как появилась запись - вводят в форму и жмут отправить.. Всё!

    Запрещено, всё что можно запретить. Ни каких лишних телодвижений скрипт уже не делает, выполняет только 1 задачу. Пропуск кадров стоит !!1500!!. Данные в базу заносит другой скрипт BAS'a..

    Что ещё тут можно нах*й сделать? Ребят, у меня уже руки опускаются..
    Вдруг кто разбирается в Node.js и как можно ему отправлять post-запросы?

    А в чем особенность отправки post-запроса к Node.js?



  • С сервером я пока решил так, запускаю 30 потоков на купленном и 14 на своём. Пока исправно работает тьфу, тьфу, тьфу..

    @xclsv Особенность узнать, что отправлять.. Элементарный чат. Снифаю запросы через HttpAnalyzerStdV7 и Fiddler. Кликаю в форму для отправки сообщения в чате, отправляется сразу get-запрос вида:

    http://mc.yandex.ru/clmap/31214616?page-url=***&pointer-click=rn%3A319247250%3Ax%3A34123%3Ay%3A19275%3At%3A1045%3Ap%3APA3WAA5&browser-info=rqnl%3A1%3Ast%3A1498020459%3Au%3A1492181440525020828
    

    А как отправляю сообщение, идёт post-запрос:

    http://mc.yandex.ru/webvisor/31214616?wmode=0&rn=717832863&page-url=***&wv-type=0&wv-hit=650994071&wv-part=31&wv-check=63598&force-urlencoded=1&browser-info=v%3A822%3Az%3A300%3Ai%3A20170621094554%3Arqnl%3A1%3Ast%3A1498020864%3Au%3A1492181440525020828
    

    Но если отправлять в BAS'e эти запросы, или даже пересылать через Fiddler, результата ни какого..



  • @Fox said in Общие вопросы про облегчение потоков.:

    С сервером я пока решил так, запускаю 30 потоков на купленном и 14 на своём. Пока исправно работает тьфу, тьфу, тьфу..

    @xclsv Особенность узнать, что отправлять.. Элементарный чат. Снифаю запросы через HttpAnalyzerStdV7 и Fiddler. Кликаю в форму для отправки сообщения в чате, отправляется сразу get-запрос вида:

    http://mc.yandex.ru/clmap/31214616?page-url=***&pointer-click=rn%3A319247250%3Ax%3A34123%3Ay%3A19275%3At%3A1045%3Ap%3APA3WAA5&browser-info=rqnl%3A1%3Ast%3A1498020459%3Au%3A1492181440525020828
    

    А как отправляю сообщение, идёт post-запрос:

    http://mc.yandex.ru/webvisor/31214616?wmode=0&rn=717832863&page-url=***&wv-type=0&wv-hit=650994071&wv-part=31&wv-check=63598&force-urlencoded=1&browser-info=v%3A822%3Az%3A300%3Ai%3A20170621094554%3Arqnl%3A1%3Ast%3A1498020864%3Au%3A1492181440525020828
    

    Но если отправлять в BAS'e эти запросы, или даже пересылать через Fiddler, результата ни какого..

    Это все запросы к Яндекс.Метрике. Полагаю, искомые запросы отправляются все-таки не туда =)
    Чтобы отснифить запросы, не обязательно использовать фиддлер. Попробуй отследить свой запрос прямо в браузере. F12, вкладка network. Жмём кнопку отправки и смотрим, куда ушел запрос с твоими данными формы.



  • @xclsv Я тоже сперва смотрел в Firebug'e. Только там тоже ни чего нет. При клике в форму для отправки сообщения в чате

    https://mc.yandex.ru/clmap/31214616?page-url=https***&pointer-click=rn%3A651866061%3Ax%3A26214%3Ay%3A23130%3At%3A5712%3Ap%3APA3WAA5&browser-info=rqnl%3A1%3Ast%3A1498028816%3Au%3A1492181440525020828
    

    С get и post запросами я уже работал, но это вот вообще всё магия, как могут приходить и уходить сообщения в чате без отправки запросов.. через какие то туннели..



  • @Fox said in Общие вопросы про облегчение потоков.:

    @xclsv Я тоже сперва смотрел в Firebug'e. Только там тоже ни чего нет. При клике в форму для отправки сообщения в чате

    https://mc.yandex.ru/clmap/31214616?page-url=https***&pointer-click=rn%3A651866061%3Ax%3A26214%3Ay%3A23130%3At%3A5712%3Ap%3APA3WAA5&browser-info=rqnl%3A1%3Ast%3A1498028816%3Au%3A1492181440525020828
    

    Это точно метрика ) В ней составляется карта кликов. Потому, данные о каждом клике отправляются к ней на сервер.

    С get и post запросами я уже работал, но это вот вообще всё магия, как могут приходить и уходить сообщения в чате без отправки запросов.. через какие то туннели..

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



  • Сейчас странность заметил, на обоих серверах запущен один скрипт по 20 потоков.
    Только вот загруженность домашнего сервера на порядок ниже..
    0_1498050164721_forum24 домашний сервак.png

    Чем у купленного
    0_1498050191964_forum25 купленный сервер.png

    Что то я совсем запутался..



  • @Fox said in Общие вопросы про облегчение потоков.:

    Сейчас странность заметил, на обоих серверах запущен один скрипт по 20 потоков.
    Только вот загруженность домашнего сервера на порядок ниже..
    0_1498050164721_forum24 домашний сервак.png

    Чем у купленного
    0_1498050191964_forum25 купленный сервер.png

    Что то я совсем запутался..

    ну ты сравнил хех)
    рил тачка это рил
    а сервер на виртуализации
    обрати внимание где инфа под графиком где кеш L т.п и найди различия )


Log in to reply