Проблема производительности приложений .NET в Windows 2003 - PullRequest
1 голос
/ 02 ноября 2009

У нас есть 2 сервера Quad Core Xeon с 8 ГБ ОЗУ и установленной на нем Windows Server 2003 Enterprise. Мы установили на нем наш сервер приложений, основанный на .NET Framework 3.5. Сервер использует SQL Server 2005 в качестве сервера базы данных.

Когда мы устанавливали сервер приложений, он работал очень быстро, и все было хорошо. Как только мы присоединились к нему в нашей области, его производительность резко снизилась. Например, задача, выполнение которой заняло 1 секунду, теперь занимает около 30 секунд. Это очень странно, поскольку только производительность приложений, основанных на .NET, повлияла на производительность, но другие приложения продолжают работать с нормальной скоростью.

Кто-нибудь имеет представление о том, почему это происходит? Любая помощь или предложение очень ценится.

Ответы [ 3 ]

3 голосов
/ 02 ноября 2009

К сожалению, для ответа на ваш вопрос, вероятно, потребуется больше. Существует множество возможных причин, по которым это происходит, и большинство из них связаны с вашим кодом.

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

Но это дикое предположение, основанное на недостаточной информации.

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

1 голос
/ 04 ноября 2009

Я нашел ответ на свой вопрос, поэтому подумал, что было бы неплохо поделиться им здесь. CLR хочет создать свидетельство издателя для сборок с подписью authenticode, когда он пытается загрузить сборки. В нашем случае CLR пытался подключиться к clr.microsoft.com, но доступ к Интернету на нашем сервере был заблокирован, поэтому это вызывало огромные задержки при попытке сервера приложений загрузить новую сборку.

Следующий пост описывает, как вы можете отключить эту функцию:

Обход проверки подписи Authenticode при запуске

0 голосов
/ 03 ноября 2009

Я собираюсь сделать предположение здесь и подумать, что вы говорите о веб-приложении. Если это правильно, вы можете взглянуть на пулы приложений, которые вы настроили на веб-сервере. Ваше приложение может запутаться в том, какой пул настраивать при запуске.

Еще одна вещь, которую нужно проверить, это ваши подключения к данным и убедитесь, что вы закрываете все, что было открыто.

Последнее, как сказал Рэндольфо, вам действительно нужно следить за выполнением кода с помощью какого-то профилировщика и видеть, где что-то связано.

Удачи!

...