Большое потребление оперативной памяти базой данных WSUS на Windows Internal Database
Доброго времени суток. Заметил некоторое время назад, что процесс “SQL Server Windows NT - 64 bit” постепенно пожирает оперативную память сервера Win 2016. Чем дольше работает сервер, тем больше оперативной памяти выделено под этот процесс и так, как я понимаю, может быть до бесконечности, пока не перезагрузить сервер, тогда объем занимаемой памяти сбрасывается и процесс начинает наращивать ее по новой. На сервере кроме WID базы WSUS нет никаких SQL баз, поэтому причина точно в ней.
Погуглив выяснил, что можно ограничить выделяемый объем оперативной памяти под конкретную SQL базу, в том числе и Windows Internal Database от WSUS, путем установки Microsoft SQL Server Management Studio. Установил, соединился с базой данных WSUS (строка \\.\pipe\MICROSOFT##WID\tsql\query), база появилась в списке соединений, далее правой кнопкой по ней и выбрать «Свойства», после чего должно открыться окно, в котором можно исправить различные параметры, в том числе и максимальный размер выделяемой ОЗУ, но вот тут то и проблема - вместо окна свойств появляется ошибка Текст ошибки
===================================
Не удается вывести требуемое диалоговое окно. =================================== Не удается вывести требуемое диалоговое окно. (SqlMgmt) ------------------------------ Расположение программы: в Microsoft.SqlServer.Management.SqlMgmt.DefaultLaunchFormHostedControlAllocator.AllocateDialog(XmlDoc ument initializationXml, IServiceProvider dialogServiceProvider, CDataContainer dc) в Microsoft.SqlServer.Management.SqlMgmt.DefaultLaunchFormHostedControlAllocator.Microsoft.SqlServer.M anagement.SqlMgmt.ILaunchFormHostedControlAllocator.CreateDialog(XmlDocument initializationXml, IServiceProvider dialogServiceProvider) в Microsoft.SqlServer.Management.SqlMgmt.LaunchForm.InitializeForm(XmlDocument doc, IServiceProvider provider, ISqlControlCollection control) в Microsoft.SqlServer.Management.SqlMgmt.LaunchForm..ctor(XmlDocument doc, IServiceProvider provider) в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ToolMenuItemHelper.OnCreateAndShowFor m(IServiceProvider sp, XmlDocument doc) в Microsoft.SqlServer.Management.SqlMgmt.RunningFormsTable.RunningFormsTableImpl.ThreadStarter.StartTh read() =================================== Не удалось получить данные по этому запросу. (Microsoft.SqlServer.Management.Sdk.Sfc) ------------------------------ Чтобы получить справку, щелкните: https://go.microsoft.com/fwlink?Prod...r&LinkId=20476 ------------------------------ Расположение программы: в Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.Process(Object connectionInfo, Request request) в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropGenData.InitProp() в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropGenData..ctor(CDataContainer context, ServerConnection sqlConnectionInfo) в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropGeneral..ctor(CDataContainer context) в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropSheet.InitNodeAssociations(CDataContainer context) в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropSheet..ctor(CDataContainer context) =================================== При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo) ------------------------------ Расположение программы: в Microsoft.SqlServer.Management.Common.ServerConnection.GetExecuteReader(SqlCommand command) в Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteReader(String sqlCommand, SqlCommand& command) в Microsoft.SqlServer.Management.Smo.ExecuteSql.GetDataReader(String query, SqlCommand& command) в Microsoft.SqlServer.Management.Smo.DataProvider.SetConnectionAndQuery(ExecuteSql execSql, String query) в Microsoft.SqlServer.Management.Smo.ExecuteSql.GetDataProvider(StringCollection query, Object con, StatementBuilder sb, RetriveMode rm) в Microsoft.SqlServer.Management.Smo.SqlObjectBase.FillData(ResultType resultType, StringCollection sql, Object connectionInfo, StatementBuilder sb) в Microsoft.SqlServer.Management.Smo.SqlObjectBase.FillDataWithUseFailure(SqlEnumResult sqlresult, ResultType resultType) в Microsoft.SqlServer.Management.Smo.SqlObjectBase.BuildResult(EnumResult result) в Microsoft.SqlServer.Management.Smo.SqlObjectBase.GetData(EnumResult erParent) в Microsoft.SqlServer.Management.Sdk.Sfc.Environment.GetData() в Microsoft.SqlServer.Management.Sdk.Sfc.Environment.GetData(Request req, Object ci) в Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.GetData(Object connectionInfo, Request request) в Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.Process(Object connectionInfo, Request request) =================================== При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы. RegQueryValueEx() returned error 2, 'Не удается найти указанный файл.' (.Net SqlClient Data Provider) ------------------------------ Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdN...0&LinkId=20476 ------------------------------ Имя сервера: \\.\pipe\MICROSOFT##WID\tsql\query Номер ошибки: 0 Серьезность: 11 Состояние: 0 ------------------------------ Расположение программы: в Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException) в Microsoft.SqlServer.Management.Common.ServerConnection.GetExecuteReader(SqlCommand command) В чем может быть проблема? Или, возможно, я все это делаю зря и есть какой-то другой известный способ ограничить выделяемый объем ОЗУ данному процессу? |
Нашел обходной путь, можно ограничить максимальный объем оперативной памяти в обход окна свойств.
1. Подключаемся к базе в SQL Server Management Studio строкой \\.\pipe\MICROSOFT##WID\tsql\query 2. В обозревателе объектов нажимаем правой кнопкой на сервере к которому подключились в первом пункте 3. В диалоговом окне нажимаем Создать запрос 4. В открывшемся окне вводим следующее: Код:
sp_configure "show advanced options", 1 5. Нажимаем правой кнопкой в окне ввода команды и нажимаем Выполнить. Теперь можете посмотреть в диспетчере задач, там объём сразу уменьшится до установленного вами. |
Время: 22:12. |
Время: 22:12.
© OSzone.net 2001-