powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Как найти где течет память?
19 сообщений из 19, страница 1 из 1
Как найти где течет память?
    #39128260
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Есть служба на WCF. Служба диагностирует рабочие станции разными способами, используя

System.Management (WMI и PowerShell)
System.Diagnostics (Счетчики производительности)
System.DirectoryServices (Чтение из Active Directory)
System.IO; (Проверка наличия файлов)
Microsoft.Win32.RegistryKey (Чтение реестра)
Sysrem.Net (Сканирование портов)

Всякие настройки служба получает из базы MS SQL. Так в эту базу и пишутся в нее логи.

Пиковая нагрузка - 400 вызовов в секунду. Средняя - 50.

Память течет со страшной силой.
Сейчас за 5 часов занимаемая оперативная память выросла с 40 килобайт, до 900 килобайт.

Как найти где течет?
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128282
vagner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2, COM (если используется) везде диспозишь?
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128284
Фотография SergMCMLXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если в консольном виде запустить, тоже течёт?
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128325
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Есть служба на WCF. Служба диагностирует рабочие станции разными способами, используя

System.Management (WMI и PowerShell)
System.Diagnostics (Счетчики производительности)
System.DirectoryServices (Чтение из Active Directory)
System.IO; (Проверка наличия файлов)
Microsoft.Win32.RegistryKey (Чтение реестра)
Sysrem.Net (Сканирование портов)

Всякие настройки служба получает из базы MS SQL. Так в эту базу и пишутся в нее логи.

Пиковая нагрузка - 400 вызовов в секунду. Средняя - 50.

Память течет со страшной силой.
Сейчас за 5 часов занимаемая оперативная память выросла с 40 килобайт, до 900 килобайт.

Как найти где течет?
Чаще всего память течет из-за не использования IDisposable объектов, поддерживающих этот интерфейс нативно. Это можно узнать либо через испектирование имплементации класса, либо использования конструкции using(). Но это в очень общих и грубых чертах.
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128327
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2System.Management (WMI и PowerShell)
System.Diagnostics (Счетчики производительности)
System.DirectoryServices (Чтение из Active Directory)
System.IO; (Проверка наличия файлов)
Microsoft.Win32.RegistryKey (Чтение реестра)
Sysrem.Net (Сканирование портов)

Всякие настройки служба получает из базы MS SQL. Так в эту базу и пишутся в нее логи.
Сходу, думаю в первыую очередь стОит проверить выделенное - так как объекты для работы с БД и файловой системой/сериализацией чаще всего дают 'течь'.
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128385
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
vagnerCat2, COM (если используется) везде диспозишь?
COM не использую


SergMCMLXXXА если в консольном виде запустить, тоже течёт?
Сейчас попробую


AxeleronСходу, думаю в первыую очередь стОит проверить выделенное - так как объекты для работы с БД и файловой системой/сериализацией чаще всего дают 'течь'.
все вызовы обернуты в using создания коннекта
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128395
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2все вызовы обернуты в using создания коннекта
Не только коннекты надо оборачивать в using. EF или Sql команды используются?
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128427
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2COM не использую
Блажен кто верует...
Возьмите какойнить профайлер... и посмотрите... кто память жрет...
Cat2Есть служба на WCF. Служба диагностирует рабочие станции разными способами, используя
Эм... это как? Я к тому, что интересная у вас архитектура... кто службу-то хостит?
P.S.: гадать можно до бесконечности...
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128455
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Есть служба на WCF. Служба диагностирует рабочие станции разными способами, используя

System.Management (WMI и PowerShell)
System.Diagnostics (Счетчики производительности)
System.DirectoryServices (Чтение из Active Directory)
System.IO; (Проверка наличия файлов)
Microsoft.Win32.RegistryKey (Чтение реестра)
Sysrem.Net (Сканирование портов)

Всякие настройки служба получает из базы MS SQL. Так в эту базу и пишутся в нее логи.

Пиковая нагрузка - 400 вызовов в секунду. Средняя - 50.

Память течет со страшной силой.
Сейчас за 5 часов занимаемая оперативная память выросла с 40 килобайт, до 900 килобайт.

Как найти где течет?

Надо взять профайлер от redgate, у них 14 дней триала, и посмотреть кто и что жрет
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128530
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Сейчас за 5 часов занимаемая оперативная память выросла с 40 килобайт, до 900 килобайт.

Ну и чего? Где причина для паники и саботажа?
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128543
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ЕвгенийВCat2Сейчас за 5 часов занимаемая оперативная память выросла с 40 килобайт, до 900 килобайт.

Ну и чего? Где причина для паники и саботажа?
Я ошибся. Речь не про килобайты, а про мегабайты
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128551
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВCat2Сейчас за 5 часов занимаемая оперативная память выросла с 40 килобайт, до 900 килобайт.

Ну и чего? Где причина для паники и саботажа?+1

Но если так хочется, то снимаете дамп с процесса и отлаживыайте память в Visual Studio Ultimate, или при помощи WinDbg, или ClrMD.

Также можно попробовать приатачится к процессу при помощи той же студии, или CLR Profiler от Microsoft, или ANT Memory Profiler от Read Gate, или dotMemory от JetBrains, или .NET Memory Profiler от SciTech.
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128555
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
AxeleronCat2все вызовы обернуты в using создания коннекта
Не только коннекты надо оборачивать в using. EF или Sql команды используются?
Команды тоже обернуты
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128558
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2ЕвгенийВпропущено...

Ну и чего? Где причина для паники и саботажа?
Я ошибся. Речь не про килобайты, а про мегабайты Для начала включите Performance Monitor на сервере и посмотрите динамику изменения расхода управляемой памяти.
Если она продолжает постоянно расти, то утечка, а если тупо вышла на некий уровень, то ничего страшного, просто код насоздавал вот столько объектов.
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128563
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
buserCat2COM не использую
Блажен кто верует...
Возьмите какойнить профайлер... и посмотрите... кто память жрет...
Cat2Есть служба на WCF. Служба диагностирует рабочие станции разными способами, используя
Эм... это как? Я к тому, что интересная у вас архитектура... кто службу-то хостит?
P.S.: гадать можно до бесконечности...
Пользователь с веб-страницы вызывает через AJAX вызывает веб-сервисы. Веб-сервисы по именованным каналам вызывают службу.
Скуль, служба и IIS крутятся на одном сервере. Ни скуль, ни IIS больше положенного не жрут
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128566
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Axeleronпропущено...

Не только коннекты надо оборачивать в using. EF или Sql команды используются?
Команды тоже обернутыТолько пристальным взглядом на код искать не эффективно. Снимите дамп и проанализируйте.
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128568
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
skyANACat2пропущено...

Я ошибся. Речь не про килобайты, а про мегабайты Для начала включите Performance Monitor на сервере и посмотрите динамику изменения расхода управляемой памяти.
Если она продолжает постоянно расти, то утечка, а если тупо вышла на некий уровень, то ничего страшного, просто код насоздавал вот столько объектов.
Ползет все время вверх, пока не забивает всю оперативку. Я просто не рискнул продолжать дальше смотреть когда файл подкачки расти начнет
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128591
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как найти где течет память?
    #39128592
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Как найти где течет память?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]