none
найти утечку памяти RRS feed

  • Вопрос

  • есть свеже установленный Windows Server 2012 R2 на Hyper-V 2012 R2, с обновлениями, с Net Framework 3.5 и SQL 2014.
    Во время установки SQL память используется на 95 % - то есть 15 GB. Всего на сервере 17 GB.
    как определить утечку память? кто использует память?
    баз данных пока ещё нет, диспетчер задач и монитор ресурсов не показывают процесс\-ы которые могут сразу использовать такое количество. При это в системе всего 46 процессов. Перезагрузка не помогает. Может ли пустой SQL использовать 15 GB  памяти?


    7 декабря 2015 г. 11:05
    Модератор

Ответы

Все ответы

  • во время установки SharePoint сервер перезагружался два раза. после этого расход памяти всего 10 % - 1,7 GB
    во время настройки SharePoint память снова до 95 % используется...
    7 декабря 2015 г. 12:15
    Модератор
  • есть свеже установленный Windows Server 2012 R2 на Hyper-V 2012 R2, с обновлениями, с Net Framework 3.5 и SQL 2014.
    Во время установки SQL память используется на 95 % - то есть 15 GB. Всего на сервере 17 GB.
    как определить утечку память? кто использует память?
    баз данных пока ещё нет, диспетчер задач и монитор ресурсов не показывают процесс\-ы которые могут сразу использовать такое количество. При это в системе всего 46 процессов. Перезагрузка не помогает. Может ли пустой SQL использовать 15 GB  памяти?


    Да, может. Но у вас, похоже, не использует. И по представленным рисункам я не вижу, на что выделена память.

    Общее состояние выделения памяти (она выделяется не только процессам - есть ещё пулы ядра и есть кэш)  можно посмотреть на вкладке Performance в Task Manager.

    Распределение физической памяти можно посмотреть утилитой rammap от Sysinternals (есть на сайте Microsoft).


    Слава России!

    7 декабря 2015 г. 13:16
  • сейчас устанавливаю TFS - использование упало до 76 %.

    7 декабря 2015 г. 13:26
    Модератор
  • rammap что показывает?

    А приведенные картинки малоинформативны, в них нет колонок "Выделено" или как там они в каждом конкретном случае называются.

    Если много памяти выделено (14 из 18), надо и смотреть, кому память выделена.

    • Изменено Igor Leyko 7 декабря 2015 г. 13:34
    7 декабря 2015 г. 13:30
  • не нравится мне Driver Locked 7 GB....

    7 декабря 2015 г. 13:50
    Модератор
  • восстановил базу данных. теперь вижу - 10 GB SQL, и ещё 5 GB на всё остальное. вроде норм.
    но вопрос почему чистая установка использовала 90% памяти?

    7 декабря 2015 г. 16:22
    Модератор
  • Мне 7GB Driver Locked тоже не нравится. Не используется ли динамическая память для ВМ? Если да, то это нормально - частичный возврат используемой памяти гипервизору осуществляется как раз драйвером (из состава средств интеграции), который помечает эту память внутри ВМ, как зарезервированную для своих нужд, и возвращает эту память в распоряжение гипервизора (иногда этот мезанизм называют ещё ballooning).


    Слава России!



    • Изменено M.V.V. _ 7 декабря 2015 г. 19:29
    7 декабря 2015 г. 16:26
  • Если на виртуальной - не используется ли динамическое выделение памяти для ВМ (в разных гипервизорах это по-разному называется)?


    Слава России!

    да, в Hyper-V 2012 R2 оно по умолчанию ставится.
    7 декабря 2015 г. 16:50
    Модератор
  • Я свой предыдущий пост немного поправил, посмотрите.

    Ну, тогда это - нормальное явление (оно как раз объяснено в исправленном куске предыдущего поста): память только числится занятой - на самом деле она отобрана у ВМ и передана в распоряжение гипервизора. Отобранное у ВМ пространство физических (с точки зрения ОС в ВМ) адресов как раз и выглядит, с точки зрения ОС в ВМ, как зарезервированное драйвером.


    Слава России!



    • Изменено M.V.V. _ 7 декабря 2015 г. 16:58
    7 декабря 2015 г. 16:56
  • И у вас, кстати, нет никакой утечки памяти.

    Утечка памяти это специфическая ошибка в программе когда в процессе работы память постоянно выделяется, но никогда не освобождается. Утечка памяти проявляется в постоянном росте выделенной памяти в процессе работы приложения, а вовсе не в использовании большого объема памяти. Т.е. может быть использовано очень много памяти без ее утечки и может быть утечка при использовании совсем небольшого объема памяти.

    Например, если и вас используется, скажем, 1 ТБ памяти и этот объем примерно постоянен то утечки нет. Если же используется всего 1 МБ памяти, но за каждый час работы объем возрастает на 1 КБ, то утечка есть. 




    This posting is provided "AS IS" with no warranties, and confers no rights.

    7 декабря 2015 г. 17:57
  • Я свой предыдущий пост немного поправил, посмотрите.

    Ну, тогда это - нормальное явление (оно как раз объяснено в исправленном куске предыдущего поста): память только числится занятой - на самом деле она отобрана у ВМ и передана в распоряжение гипервизора. Отобранное у ВМ пространство физических (с точки зрения ОС в ВМ) адресов как раз и выглядит, с точки зрения ОС в ВМ, как зарезервированное драйвером.


    Слава России!



    а где бы об этом подробнее почитать?
    7 декабря 2015 г. 21:07
    Модератор
  • И у вас, кстати, нет никакой утечки памяти.

    под утечкой я имел ввиду - память используется, но не понятно кем. т.е. как бы утекает не понятно куда.
    мне следовало подобрать другое слово...
    7 декабря 2015 г. 21:09
    Модератор
  • а где бы об этом подробнее почитать?

    Сложно сказать. Информация рассыпана по крохам по различным статьям Technet и блогам Technet и MSDN.

    Похожий на ваш случай, например, был в этой статье: http://blogs.msdn.com/b/saponsqlserver/archive/2013/08/31/virtualization-overcommitting-memory-and-how-to-detect-it-within-the-vm.aspx


    Слава России!

    • Помечено в качестве ответа AnahaymModerator 7 декабря 2015 г. 23:17
    7 декабря 2015 г. 22:49