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

Поддержка
  • @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 есть успехи?

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

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

    Какие именно? Проблему я локализовал и передал разработчику, как он ответит, я продублирую его ответ здесь

  • @Fox каким-то костылем может можно избежать?