БД жрет очень много оперативки



  • На днях перенес несколько скриптов на базу данных, и заметил что начало слишком много жрать оперативки. со временем все больше и больше и так до 100%. грузят не потоки, а именно главный процесc fastexecutescript


  • MLA Team

    1. Что отображается в инспекторе переменных во время выполнения скрипта (возможно это утечка в коде при работе с БД)?
    2. Могли бы вы дать ссылку на сам скрипт? так будет проще определить причину.


  • @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мб


Log in to reply
 

  • 8
  • 5
  • 7
  • 4
  • 15
  • 1
  • 17
  • 2