Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
15.12.2015, 11:45
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
Есть служба на 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 килобайт. Как найти где течет? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 11:59
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
Cat2, COM (если используется) везде диспозишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 12:00
|
|||
---|---|---|---|
|
|||
Как найти где течет память? |
|||
#18+
А если в консольном виде запустить, тоже течёт? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 12:23
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
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(). Но это в очень общих и грубых чертах. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 12:24
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
Cat2System.Management (WMI и PowerShell) System.Diagnostics (Счетчики производительности) System.DirectoryServices (Чтение из Active Directory) System.IO; (Проверка наличия файлов) Microsoft.Win32.RegistryKey (Чтение реестра) Sysrem.Net (Сканирование портов) Всякие настройки служба получает из базы MS SQL. Так в эту базу и пишутся в нее логи. Сходу, думаю в первыую очередь стОит проверить выделенное - так как объекты для работы с БД и файловой системой/сериализацией чаще всего дают 'течь'. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 12:52
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
vagnerCat2, COM (если используется) везде диспозишь? COM не использую SergMCMLXXXА если в консольном виде запустить, тоже течёт? Сейчас попробую AxeleronСходу, думаю в первыую очередь стОит проверить выделенное - так как объекты для работы с БД и файловой системой/сериализацией чаще всего дают 'течь'. все вызовы обернуты в using создания коннекта ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 12:56
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
Cat2все вызовы обернуты в using создания коннекта Не только коннекты надо оборачивать в using. EF или Sql команды используются? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 13:15
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
Cat2COM не использую Блажен кто верует... Возьмите какойнить профайлер... и посмотрите... кто память жрет... Cat2Есть служба на WCF. Служба диагностирует рабочие станции разными способами, используя Эм... это как? Я к тому, что интересная у вас архитектура... кто службу-то хостит? P.S.: гадать можно до бесконечности... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 13:27
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
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 дней триала, и посмотреть кто и что жрет ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 14:02
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
Cat2Сейчас за 5 часов занимаемая оперативная память выросла с 40 килобайт, до 900 килобайт. Ну и чего? Где причина для паники и саботажа? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 14:07
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
ЕвгенийВCat2Сейчас за 5 часов занимаемая оперативная память выросла с 40 килобайт, до 900 килобайт. Ну и чего? Где причина для паники и саботажа? Я ошибся. Речь не про килобайты, а про мегабайты ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 14:13
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
ЕвгенийВCat2Сейчас за 5 часов занимаемая оперативная память выросла с 40 килобайт, до 900 килобайт. Ну и чего? Где причина для паники и саботажа?+1 Но если так хочется, то снимаете дамп с процесса и отлаживыайте память в Visual Studio Ultimate, или при помощи WinDbg, или ClrMD. Также можно попробовать приатачится к процессу при помощи той же студии, или CLR Profiler от Microsoft, или ANT Memory Profiler от Read Gate, или dotMemory от JetBrains, или .NET Memory Profiler от SciTech. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 14:14
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
AxeleronCat2все вызовы обернуты в using создания коннекта Не только коннекты надо оборачивать в using. EF или Sql команды используются? Команды тоже обернуты ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 14:15
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
Cat2ЕвгенийВпропущено... Ну и чего? Где причина для паники и саботажа? Я ошибся. Речь не про килобайты, а про мегабайты Для начала включите Performance Monitor на сервере и посмотрите динамику изменения расхода управляемой памяти. Если она продолжает постоянно расти, то утечка, а если тупо вышла на некий уровень, то ничего страшного, просто код насоздавал вот столько объектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 14:18
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
buserCat2COM не использую Блажен кто верует... Возьмите какойнить профайлер... и посмотрите... кто память жрет... Cat2Есть служба на WCF. Служба диагностирует рабочие станции разными способами, используя Эм... это как? Я к тому, что интересная у вас архитектура... кто службу-то хостит? P.S.: гадать можно до бесконечности... Пользователь с веб-страницы вызывает через AJAX вызывает веб-сервисы. Веб-сервисы по именованным каналам вызывают службу. Скуль, служба и IIS крутятся на одном сервере. Ни скуль, ни IIS больше положенного не жрут ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 14:19
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
Cat2Axeleronпропущено... Не только коннекты надо оборачивать в using. EF или Sql команды используются? Команды тоже обернутыТолько пристальным взглядом на код искать не эффективно. Снимите дамп и проанализируйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 14:21
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
skyANACat2пропущено... Я ошибся. Речь не про килобайты, а про мегабайты Для начала включите Performance Monitor на сервере и посмотрите динамику изменения расхода управляемой памяти. Если она продолжает постоянно расти, то утечка, а если тупо вышла на некий уровень, то ничего страшного, просто код насоздавал вот столько объектов. Ползет все время вверх, пока не забивает всю оперативку. Я просто не рискнул продолжать дальше смотреть когда файл подкачки расти начнет ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.12.2015, 14:33
|
|||
---|---|---|---|
Как найти где течет память? |
|||
#18+
Даже так: https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=windbg wcf memory leak ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=19&tablet=1&tid=1396814]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
22ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 270ms |
total: | 376ms |
0 / 0 |