Я столкнулся с большой проблемой памяти, которая вызывает серьезные проблемы на сервере.
На машине стоит Windows 2003 x86, SQL Server 2005 и IIS, на котором запущено множество приложений. 8-процессорная система с 4 Гб оперативной памяти. Основная проблема, которая возникла в последнее время, заключается в том, что использование памяти всегда велико, около 3,8 ГБ. Через некоторое время после перезагрузки он начинает расти до 3,8 - 4 Гб, а затем некоторые приложения перестают отвечать на запросы, выполнение запросов к серверу sql замедляется, и единственное, что остается сделать, это перезагрузка, что плохо.
Когда я смотрю в диспетчер задач по процессам, сумма потребляемой памяти едва ли превышает 1Гб. Когда я открыл монитор vmmap, он показывает мне то же самое.
Максимальный объем памяти SQL Server составляет 2 ГБ. Размер файла подкачки 2 - 4 Гб.
Какие у вас есть идеи о том, как я могу выяснить, что занимает так много памяти?
Я был бы очень удивлен, если бы это был не IIS. Какие приложения вы там запускаете?
SQL-сервер, вероятно, ваш виноват. Этот зверь попытается использовать как можно больше памяти, чтобы оптимизировать себя. На Форумы MSDN идет разговор о проблеме, очень похожей на вашу. В самом MSDN есть пара статей, которые помогут вам управлять памятью, используемой SQL Server.
Параметры памяти сервера Мониторинг использования памяти
Удачи вам в решении ваших проблем и надеюсь, что это вам поможет.
Посмотрите на счетчики производительности в категории «Процесс». В этой категории есть один экземпляр для каждого процесса на вашем сервере, и отдельные счетчики покажут вам выделенную память, размер виртуального адресного пространства и размер рабочего набора для каждого процесса. Как только вы узнаете который процесс потребляет всю память (при условии, что память потребляется в пользовательском режиме), тогда вы можете нацелить свое исследование. И IIS / ASP, и SQL - это серьезные процессы, требующие большого объема памяти, но поиск и устранение неисправностей при расследовании сильно различается между ними. Поэтому очень важно сначала выяснить, что это такое, прежде чем вы начнете слепо менять настройки.
И как сторона нет, вы не должны запускать IIS и SQL на одном компьютере.
Сначала убедитесь, что диспетчер задач показывает вам процессы всех пользователей. Память, отображаемая в диспетчере задач, должна быть довольно близка к использованию памяти на коробке. это расскажет вам, какие процессы съедают барана. Скорее всего, это будет IIS, который использует оперативную память, и, согласно моему комментарию, вы должны уменьшить количество пулов приложений до необходимого (1 на идентификатор и 1 на версию платформы)