БД жрет очень много оперативки
-
На днях перенес несколько скриптов на базу данных, и заметил что начало слишком много жрать оперативки. со временем все больше и больше и так до 100%. грузят не потоки, а именно главный процесc fastexecutescript
-
- Что отображается в инспекторе переменных во время выполнения скрипта (возможно это утечка в коде при работе с БД)?
- Могли бы вы дать ссылку на сам скрипт? так будет проще определить причину.
-
@f1kus только что пришла в голову возможная причина. как раз после просмотра испектора. может быть такой косяк из-за того, что я отпечаток гружу каждый раз с файла? т.е по сути он каждый раз я так понимаю грузится в оперативу..а так как это единственное большое что грузится, походу из-за него. т.е у меня для каждого профиля в отдельных файлах отпечатки. и перед загрузкой профиля, я делаю действие "Читать файл"
-
@f1kus да, как я и предпологал, это из-за того что используется действие "Читать в файл". Теперь возник другой вопрос... как выгружапть с оперативы эти самые отпечатки? Через ресурс юзать их сейчас невозможно.. а закинуть в базу это вообще самоубийство... база тогда жестко тупит, так как в отпечатке 140кб текста.
-
@smurfik удалять переменную после применения отпечатка.
Выполнить кодdelete VAR_FINGERPRINT
-
@smurfik Только учти, что код @DrPrime удалит переменную совсем. Если потом где нибудь она повстречается, то произойдёт ошибка. Можешь просто установить переменную FINGERPRINT с пустым значением, ну или пробелом.
На форуме уже темы были с удалением и обнулением переменных, толку от обоих телодвижений немного.
-
@DrPrime скорее всего не поможет.. так как оперативу жрет даже если один и тот же отпечаток грузить в одну и ту же переменную.. т.е по логике она перезаписывается, и не должно жрать больше..но это не так. есои зациклить получение отпечатка в переменную, и поставить например 1000 кругов, то и сожрет метров 200 оперативы
-
@smurfik Сильно сомневаюсь, что оперативку жрёт именно экшен Читать в файл. Я админку для скрипта перевёл с get-запросов на чтение из файла и снизил нагрузку. Надёжнее взглянуть на скрипт, чем строить догадки..
-
Возможно, если работа в многопотоке, то нужно галку поставить "Перезапускать процесс в начале работы потока". Это уменьшает потребление памяти, но увеличивает нагрузку на процессор. Возможно эта ссылка поможет.
-
@seedgg суть в том, что у меня потоки не завершаются вообще. я знаю что это немного печаль, но за то все красиво. да и сами потоки оперативы тянут как и нужно.. максимум 80мб. а вот главный процесс до 100% со временем
-
@Fox написал как есть. открыл рядом окно монитора процесса, и бас. нажимаю выполнить тоолько это действие на "читать с файла" и как только нажимаю, оперативки берет ровно столько, сколько весит отпечаток. нажал 10 раз, увеличилось на полтора мб. нажал 100 раз, увеличилось на 15мб. а так как у меня такие чтения по несколько десятков тысяч в сутки, вот оно и забирает по 3-5гб. в зависимости от того на сколько гб сервер. если оперативы нет, скрипт виснет, и ос предлагает завершить
-
@smurfik, сброс браузера не пробовал делать?
-
@Antonio сделал завершение потоков. хотя бы дальше до 100% не идет.но все равно набирает 1200мб. при чем на одном сервере 1200мб, а на другом всего 400мб