Параметры пула приложений веб-форм ASP.Net

У нас есть пул приложений и старое приложение веб-форм asp.net 2.0, использующее проприетарную библиотеку для подключения к базе данных.

Мы сталкиваемся с OutOfMemoryExceptions, а поскольку библиотека — это черный ящик, который мы не можем изменить. Я пытаюсь убедиться, что параметры пула приложений установлены правильно.

На веб-сервере установлено 8 ГБ памяти, а настройки пула приложений:

Переработка

Ограничение частной памяти (КБ): 0 Обычный интервал времени (минуты): 0 Ограничение запроса: 0 Ограничение виртуальной памяти (КБ): 3145728

Вы верите, что это правильно?

Сообщение об исключении:

Exception of type 'System.Web.HttpUnhandledException' was thrown.
ContentType: System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.Data.SqlClient.SqlBuffer.set_SqlGuid(SqlGuid value)
   at System.Data.SqlClient.TdsParser.ReadSqlValueInternal(SqlBuffer value, Byte tdsType, Int32 typeId, Int32 length, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.ReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ReadColumnData()
   at System.Data.SqlClient.SqlDataReader.ReadColumn(Int32 i, Boolean setTimeout)
   at System.Data.SqlClient.SqlDataReader.GetGuid(Int32 i)
   at Adam.Core.DataMapper.PagingDataReader.GetGuid(Int32 i)
   at Adam.Core.DataMapper.Fields.GuidTableField.AssignReader(IDataReader reader, Int32 columnIndex)
   at Adam.Core.DataMapper.ItemBase.AssignReader(IDataReader reader, SqlMappings mappings)
   at Adam.Core.DataMapper.ExtendedItemBase.AssignReader(IDataReader reader, SqlMappings mappings)
   at Adam.Core.Records.RecordCollection.Load(SearchExpression expression, String sortOrder, Int32 pageNumber, Int32 recordsPerPage, Boolean& isLastPage, Int32 maxRecords, RecordLoadOptions options)
   at Adam.Core.Records.RecordCollection.Load(SearchExpression expression, String sortOrder, Int32 pageNumber, Int32 recordsPerPage, Boolean& isLastPage, Int32 maxRecords)
   at Adam.Core.DataMapper.ExtendedItemBaseCollection.Load(SearchExpression expression, String sortOrder)
   at AssetFilePage.Page_Load(Object sender, EventArgs e) in e:\App\WEBAPP.WebSite\file.aspx.cs:line 27
   at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
   at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   at System.Web.UI.Control.OnLoad(EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Заранее спасибо.


person dtakis    schedule 26.06.2017    source источник


Ответы (1)


Я бы посоветовал использовать настройки ниже в качестве отправной точки:

Лимит частной памяти (КБ): 1048576

Обычный временной интервал (минуты): 1440

Запрос.Лимит: 10000

Лимит виртуальной памяти (КБ): 1048576

Установка лимитов частной и виртуальной памяти на 1 Гб, регулярная переработка (24 часа) и некоторый лимит запросов (0 не ограничен). Это будет случай мониторинга вашего приложения и точной настройки ниже, пока вы не получите золотую середину.

Дополнительные сведения см. здесь: https://technet.microsoft.com/en-gb/library/cc745955.aspx

person Rob C    schedule 27.06.2017