проблема производительности - растущее использование памяти и процессора - PullRequest
1 голос
/ 14 мая 2011

У меня есть приложение для Windows, которое я написал.
Я установил его на виртуальном сервере (vmware), который содержит Windows Server 2008, и по какой-то причине приложение становится все больше и больше.Я использовал perfmon, чтобы увидеть, может быть, есть утечка памяти - но, как я понимаю, ее нет:
perfmon

Вот процесс в диспетчере задач:
task manager

Есть также два процесса, которые используют много памяти и процессора, но стабильны и не растут, как SimeserManager.exe.

Увеличение памяти замедляет серфинг на сайтах, которые удерживает этот сервер.До этой недели я использовал свое приложение на физическом сервере с Windows Server 2003, и с серфингом проблем не было.Я не могу восстановить ситуацию на физическом компьютере, поскольку у меня его больше нет, но я не верю, что при использовании физического сервера произошла ошибка памяти.

Приложение написано на c # .net с использованием Visual Studio 2010.

В чем может быть проблема?
Где я могу получить некоторые подсказки?

ОБНОВЛЕНИЕ
Я получаю профилировщик памяти ANTS и пытался найти проблему.Я создал снимки памяти, и вот результаты:
ANTS memory profiler

Теперь я действительно потерян.
Я попробовал стандартные фильтры, но не смог найти ключ к решению проблемы.На изображении вы можете видеть увеличение количества байтов.Это говорит о том, что есть утечка памяти?

Может кто-нибудь дать мне несколько подсказок, как продолжить?

Спасибо!

1 Ответ

1 голос
/ 14 мая 2011

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

http://www.red -gate.com / продукция / DotNet-разработка / Муравьи-памяти профайлер /

Это не бесплатно, но дешево и чрезвычайно эффективно. Получите 14-дневную бесплатную пробную версию и запустите ее в своем приложении. Я бы сказал, что если проблема не найдена, проблема, вероятно, не в вашем приложении.

Что касается других процессов, которые занимают много памяти, это нормально. SQL Server пытается получить как можно больше памяти. Запуск других приложений на том же компьютере, что и сервер SQL, может привести к проблемам с производительностью, если вы не будете осторожны. Вот хорошая статья о том, как SQL Server использует память:

http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/08/24/troubleshooting-the-sql-server-memory-leak-or-understanding-sql-server-memory-usage.aspx

Что касается использования памяти IIS (другой процесс, который использовал много памяти), для этого может быть несколько причин. Я бы посоветовал вам прочитать этот форум, чтобы лучше понять, что это может быть (если это действительно проблема):

http://forums.iis.net/t/1150494.aspx

...