Утечка памяти или из за чего происходит сбой системы?

Поддержка
  • @UserTrue ну и я о том же, будет лагать. А вопрос почему? А должно ли так быть? А что нужно чтобы не лагало? А как я могу что-то сделать если я понятия не имею как оно работает, как и большинство новичков

  • @HustleMan said in Утечка памяти или из за чего происходит сбой системы?:

    @GhostZ благодарю за ответ и ваше время, спарсил 100 000 ссылок, немного медленнее стало утекать, но проблема осталась.

    Сколько времени должен работать ваш скрипт, что бы проблема проявилась?

    @HustleMan said in Утечка памяти или из за чего происходит сбой системы?:

    @UserTrue а зачем копии если можно в одном окне указать больше потоков или нет?

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

    @HustleMan said in Утечка памяти или из за чего происходит сбой системы?:

    @UserTrue ну и я о том же, будет лагать. А вопрос почему? А должно ли так быть? А что нужно чтобы не лагало? А как я могу что-то сделать если я понятия не имею как оно работает, как и большинство новичков

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

  • @Fox @Fox по времени достаточно и 15 мин при 40 потоках чтобы увидеть как потребление озу стремиться только вверх

  • @HustleMan said in Утечка памяти или из за чего происходит сбой системы?:

    @Fox @Fox по времени достаточно и 15 мин при 40 потоках чтобы увидеть как потребление озу стремиться только вверх

    С использованием прокси или можно без прокси?

  • @Fox я без прокси запускал, сейчас домой приду и скину скрин что вышло по итогу Парсинга 750000 страниц, я для сравнения один раз прогнал с логом и один раз без лога

  • @HustleMan said in Утечка памяти или из за чего происходит сбой системы?:

    @Fox я без прокси запускал, сейчас домой приду и скину скрин что вышло по итогу Парсинга 750000 страниц, я для сравнения один раз прогнал с логом и один раз без лога

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

  • @Fox Вам спасибо. Я уж думал что особенный, раз у всех все работает.

  • @Fox Вот для наглядности скрины. Тест проводил на скрипте который прислал @GhostZ no_recursion.xml

    На этом скрине был включен лог (Модуль Logger) и сброс http клиента(не знаю влияет или нет).
    Выполнялся парсинг 750 000 страничек без записи куда-либо, просто в лог 1 страничка = 1 запись в лог.
    В результате потребление ОЗУ росло вплоть до завершения работы скрипта.
    1.png

    На этом скрине я убрал лог и сброс http клиента. Потребление ОЗУ снизилось в разы, но утечка все равно есть
    2.png

    о чем свидетельствует уже этот скрин. За 11 минут потребление возросло на 9.3 мб, значит в минуту утекает 0.84 мб.
    3.png

    UPD: на данный момент в 17:30 уже 385.7 мб, а при старте было около 250 мб.
    Вполне вероятно что на старых версиях утечка тоже есть. Просто никто не хочет что-то тестить и заморачиваться, а ведь от этого зависит как будет работать BAS в дальнейшем.

    А заказчику что говорить то?)
    изображение_2023-09-20_173908173.png

  • @HustleMan said in Утечка памяти или из за чего происходит сбой системы?:

    UPD: на данный момент в 17:30 уже 385.7 мб, а при старте было около 250 мб.
    Вполне вероятно что на старых версиях утечка тоже есть. Просто никто не хочет что-то тестить и заморачиваться, а ведь от этого зависит как будет работать BAS в дальнейшем.

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

  • @Fox тоже погонял этот скрипт, из интересного память остаётся еще частично забитой после остановки, и после повторного запуска (без перезапуска бас) память стартует с этой отметки.
    Например, через 20 минут работы скрипт потреблял 670 мб оперативы, после остановки занятая память была на уровне 611мб, запускаю снова и останавлию на 800 мб - занятая память после остановки - 722 мб.
    Так же скорее всего причина утечки в одной из ошибок

    getaddrinfo() thread failed to start
    Failed to connect to api.uzum.uz port 443: Address already in use
    
  • @DrPrime said in Утечка памяти или из за чего происходит сбой системы?:

    @Fox тоже погонял этот скрипт, из интересного память остаётся еще частично забитой после остановки, и после повторного запуска (без перезапуска бас) память стартует с этой отметки.
    Например, через 20 минут работы скрипт потреблял 670 мб оперативы, после остановки занятая память была на уровне 611мб, запускаю снова и останавлию на 800 мб - занятая память после остановки - 722 мб.
    Так же скорее всего причина утечки в одной из ошибок

    getaddrinfo() thread failed to start
    Failed to connect to api.uzum.uz port 443: Address already in use
    

    Спасибо за информацию, я пока продолжаю тесты

  • @DrPrime у меня еще после 750 000 страниц, скрипт продолжает работать.
    изображение_2023-09-20_175609017.png

  • @HustleMan Это интересно, значит какой то поток еще "работает". Долго такое продолжается?

  • @DrPrime та я остановил. Ну по логу можно понять. Вроде как 15 поток крашнулся и завис

    Скрипт запущен в 40 потоков и будет остановлен после 1000000 успешных выполнений или 1000000 неудачных выполнений или после использования всех ресурсов.
    Вы можете изменить эти параметры в режиме записи.
    
    [402768648] [16:58:42] Поток №15 : Поток завершился с сообщением "SyntaxError: Unable to parse JSON string"
    [17:34:48] Поток №21 : Поток завершился с сообщением ""
    [17:35:29] Поток №4 : Поток завершился с сообщением ""
    [17:35:39] Поток №38 : Поток завершился с сообщением ""
    [17:35:40] Поток №1 : Поток завершился с сообщением ""
    [17:35:48] Поток №30 : Поток завершился с сообщением ""
    [17:35:56] Поток №5 : Поток завершился с сообщением ""
    [17:36:07] Поток №3 : Поток завершился с сообщением ""
    [17:36:09] Поток №37 : Поток завершился с сообщением ""
    [17:36:10] Поток №16 : Поток завершился с сообщением ""
    [17:36:12] Поток №39 : Поток завершился с сообщением ""
    [17:36:29] Поток №24 : Поток завершился с сообщением ""
    [17:36:32] Поток №33 : Поток завершился с сообщением ""
    [17:36:33] Поток №13 : Поток завершился с сообщением ""
    [17:36:35] Поток №19 : Поток завершился с сообщением ""
    [17:36:40] Поток №29 : Поток завершился с сообщением ""
    [17:36:42] Поток №11 : Поток завершился с сообщением ""
    [17:36:44] Поток №31 : Поток завершился с сообщением ""
    [17:36:45] Поток №6 : Поток завершился с сообщением ""
    [17:36:47] Поток №12 : Поток завершился с сообщением ""
    [17:36:49] Поток №35 : Поток завершился с сообщением ""
    [17:36:50] Поток №20 : Поток завершился с сообщением ""
    [17:36:51] Поток №32 : Поток завершился с сообщением ""
    [17:36:51] Поток №14 : Поток завершился с сообщением ""
    [17:36:52] Поток №9 : Поток завершился с сообщением ""
    [17:36:54] Поток №26 : Поток завершился с сообщением ""
    [17:36:56] Поток №18 : Поток завершился с сообщением ""
    [17:36:57] Поток №22 : Поток завершился с сообщением ""
    [17:37:02] Поток №40 : Поток завершился с сообщением ""
    [17:37:07] Поток №23 : Поток завершился с сообщением ""
    [17:37:09] Поток №10 : Поток завершился с сообщением ""
    [17:37:10] Поток №34 : Поток завершился с сообщением ""
    [17:37:12] Поток №8 : Поток завершился с сообщением ""
    [17:37:17] Поток №17 : Поток завершился с сообщением ""
    [17:37:34] Поток №25 : Поток завершился с сообщением ""
    [17:37:39] Поток №28 : Поток завершился с сообщением ""
    [17:38:02] Поток №36 : Поток завершился с сообщением ""
    [17:38:02] Поток №27 : Поток завершился с сообщением ""
    [17:38:03] Поток №2 : Поток завершился с сообщением ""
    [17:38:35] Поток №7 : Поток завершился с сообщением ""
    [17:57:07] Поток №15 : Поток выполнен успешно с сообщением "Ok"
    [17:57:07] Скрипт завершен корректно
    

    Отчет еще если надо

    Удачно(0)
    
    Неудач(40)
    Сообщения:
           39 - Закончен с сообщением: 
           1 - [402768648] SyntaxError: Unable to parse JSON string
    
    Неудач и восстановлено(7)
    Сообщения:
           6 - Empty reply from server
           1 - SyntaxError: Unable to parse JSON string
    
    
    Время работы : 01:51:15
    
    Последнее сообщение : Прервано Пользователем
    
  • @HustleMan @Fox
    Пару раз обращались ко мне с похожей проблемой. Есть подозрение что данная проблема связана именно с модулем JSON, попробуйте переписать скрипт через выполнить код -JSON.pasre и распаршивание объекта циклами(сам всегда именно так разбираю json и проблем не встречал)

  • @pijon Возможно, потому что я этот модуль тоже не использую и проблем у меня нет.

  • @pijon said in Утечка памяти или из за чего происходит сбой системы?:

    @HustleMan @Fox
    Пару раз обращались ко мне с похожей проблемой. Есть подозрение что данная проблема связана именно с модулем JSON, попробуйте переписать скрипт через выполнить код -JSON.pasre и распаршивание объекта циклами(сам всегда именно так разбираю json и проблем не встречал)

    Нет, я удалял эти действия и утечка всё равно продолжалась. Пока ещё причину не выяснил

  • @Fox а сброс клиента пробовал убрать? Может там старый экземпляр остаётся в памяти или вроде того. Потому что его я тоже обычно не использую

  • @UserTrue said in Утечка памяти или из за чего происходит сбой системы?:

    @Fox а сброс клиента пробовал убрать? Может там старый экземпляр остаётся в памяти или вроде того.

    Я очень много времени занимаюсь определением багов BAS, у меня уже давно есть слаженный алгоритм выявления проблемы :D

  • @Fox есть успехи?