Полный фриз скрипта

Поддержка
  • Всем привет! Столкнулся со странной проблемой, буду рад любым комментариям по теме

    Дано:

    • скрипт работает в 80 потоков (браузеры + http-клиенты), в некоторые пиковые моменты все потоки единомоментно активизируются
    • сервер 24 ядра 3.4 ГГц, 24 ГБ ОЗУ, 50 Гб SSD; нагрузка по ЦП 35%, по ОЗУ 75%, диск почти пустой
    • он так работает уже давно, нагрузка конечно в пиковые моменты возрастает, иногда даже где-то бывают подвисания на 1-2 сек, но не более того

    Что произошло: теперь, в некоторые такие пиковые моменты нагрузки (но не во все, случайным образом) весь скрипт зависает на 2-3 минуты и отвисает через 2-3 минуты как ни в чем не бывало. То есть весь сервер работает, но в BAS вообще ничего не происходит, ни одного лога. И через 2-3 минуты единомоментно все начинает работать снова. Даже POST-запросы, отправленные 2-3 минуты назад, тупо доходят через эти 2-3 минуты.

    Я никогда не сталкивался с такой проблемой, но кажется это похоже на зависание основного процесса BAS? С чем это может быть связано? Куда копать?7eff13f4-2fa6-49d6-86d0-df5aeb8969fe-image.png

  • Здравствуйте, проект работает в скомпилированном виде или нет?
    Какая версия BAS используется?
    Перед тем как начались зависания, какие действия были? Обновление BAS? Возможно какие-то изменения в проекте?
    Попробуйте уменьшить количество потоков и понаблюдать за результатом, если дело не в ресурсах сервера, есть вероятность, что сетевая нагрузка слишком большая.

  • @m4zuper
    Версия 26.7.1 (не обновляю давно)
    Скомпилирован
    Никаких действий
    Дело не в потоках, т.к. до этого месяцами работало на 140-160 потоках на этом же сервере

    Грешу на какие-то утечки памяти, т.к. до этого насколько помню всегда было 40% ОЗУ использовано, а сейчас 75%. Ребутнул сервер, стало 40% ОЗУ опять, посмотрим в динамике. Может ли нехватка ОЗУ вызывать зависания такого рода? Потому что раньше, когда ОЗУ было мало, просто потоки отказывались стартовать, но скрипт продолжал работать.

  • @doupiu said in Полный фриз скрипта:

    Может ли нехватка ОЗУ вызывать зависания такого рода?

    Не могу ничего утверждать, но думаю, что возможно

    @doupiu said in Полный фриз скрипта:

    Грешу на какие-то утечки памяти

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

    Возможно, ресурсы, с которыми вы работаете, стали более требовательными к браузеру.
    Возможно овнер сервера как-то "оптимизирует" работу серверов, не знаю даже что ещё могло повлиять

  • @m4zuper Удалось увидеть вживую момент зависания. Выглядит это так, что все приложение BAS становится в статус "Не отвечает" в Windows, соответственно никаких логов внутри не появляется, полоска "Скрипт работает" не двигается. При этом и ЦП, и ОЗУ, и сеть, и диск - без нагрузки. Все остальное, кроме BAS, работает нормально. И через 3 минуты все отвисло и продолжило работать.

    Куда можно покопать?

  • @doupiu said in Полный фриз скрипта:

    Куда можно покопать?

    Очень большие\бесконечные циклы без задержки или частые обращения к базе данных

  • @Fox said in Полный фриз скрипта:

    Очень большие\бесконечные циклы без задержки или частые обращения к базе данных

    Да, у меня бывали из-за этого проблемы (много циклов и работы с БД), и этот момент уже оптимизирован и не менялся с тех пор. И даже когда были проблемы, это вызывало подвисания на 2-3 секунды, но не на 2-3 минуты.

    P.S. Общение с ChatGPT говорит о том, что что-то внутри BAS (кол-во DNS/TLS-коннектов/процессов/диск) блокирует основной поток BAS. И отвисает по таймауту, поэтому каждый раз это происходит ровно через 2-3 минуты. Есть что-то подобное в движке BAS, что можно изменить?

  • 0 Votes
    3 Posts
    501 Views
  • 0 Votes
    2 Posts
    420 Views
  • 0 Votes
    5 Posts
    618 Views
  • 0 Votes
    1 Posts
    327 Views
  • 1 Votes
    8 Posts
    1945 Views