Проблема с производительностью приложений .NET в Windows 2003

StackOverflow https://stackoverflow.com/questions/1663390

Вопрос

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

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

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

Это было полезно?

Решение 2

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

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

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

Другие советы

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

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

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

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

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

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

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

Удачи!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top