@gurkin4 said in Есть ли возможность управлять потоками при работе скрипта?:
На счёт добавления потоков. Думаю, что без перезапуска программы это неаозможно, хотя..., кто знает
Возможно через асинхронные функции, это и есть фактически новые потоки
Всем привет! Столкнулся со странной проблемой, буду рад любым комментариям по теме
Дано:
Что произошло: теперь, в некоторые такие пиковые моменты нагрузки (но не во все, случайным образом) весь скрипт зависает на 2-3 минуты и отвисает через 2-3 минуты как ни в чем не бывало. То есть весь сервер работает, но в BAS вообще ничего не происходит, ни одного лога. И через 2-3 минуты единомоментно все начинает работать снова. Даже POST-запросы, отправленные 2-3 минуты назад, тупо доходят через эти 2-3 минуты.
Я никогда не сталкивался с такой проблемой, но кажется это похоже на зависание основного процесса BAS? С чем это может быть связано? Куда копать?
Здравствуйте, проект работает в скомпилированном виде или нет?
Какая версия 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, что можно изменить?