Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 пропадает CLR сборка  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Имеем
Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64) Aug 19 2014 12:21:34 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
Свойство
'max server memory' = 80000

Память на сервере 128 гб
По системному монитору доступно порядка 33 гб(в момент события на таком примерно уровне и держалось)

Появились проблема, что иногда в часы пиковой нагрузки сервер перестает видеть CLR сборку и не может вызвать CLR процедуру.
В то же время по логу сервера:
+

04/08/2015 11:44:29,spid492,Неизвестно,Unsafe assembly 'rabbitmq.client<c/> version=3.1.1.0<c/> culture=neutral<c/> publickeytoken=89e7d7c5feba84ce<c/> processorarchitecture=msil' loaded into appdomain 24 ().
04/08/2015 11:44:28,spid492,Неизвестно,Unsafe assembly 'rabbitmq.client<c/> version=0.0.0.0<c/> culture=neutral<c/> publickeytoken=null<c/> processorarchitecture=msil' loaded into appdomain 24 ().
04/08/2015 11:44:28,spid1736,Неизвестно,Unsafe assembly 'cachereloader.sqlclr<c/> version=0.0.0.0<c/> culture=neutral<c/> publickeytoken=null<c/> processorarchitecture=msil' loaded into appdomain 24 ().
04/08/2015 11:44:28,spid25s,Неизвестно,AppDomain 26 () unloaded.
04/08/2015 11:44:28,spid441,Неизвестно,Unsafe assembly 'rabbitmq.client<c/> version=0.0.0.0<c/> culture=neutral<c/> publickeytoken=null<c/> processorarchitecture=msil' loaded into appdomain 26 ().
04/08/2015 11:44:28,spid20s,Неизвестно,AppDomain 25 () unloaded.
04/08/2015 11:44:28,spid441,Неизвестно,Unsafe assembly 'rabbitmq.client<c/> version=3.1.1.0<c/> culture=neutral<c/> publickeytoken=89e7d7c5feba84ce<c/> processorarchitecture=msil' loaded into appdomain 25 ().
04/08/2015 11:44:27,spid441,Неизвестно,AppDomain 24 () created.
04/08/2015 11:44:27,spid21s,Неизвестно,AppDomain 23 () unloaded.
04/08/2015 11:44:27,spid441,Неизвестно,AppDomain 23 () is marked for unload due to common language runtime (CLR) or security data definition language (DDL) operations.



Как я понимаю сервер выгружает в какой то момент сборку из своих AppDomain и она становится недоступна. Быстро решить проблему помогает только перенакат сборки. Все это происходит видимо из соображений очистки памяти, но непонятно для чего ее очищать, когда доступно 33 гб. Подскажите пожалуйста природу ошибки и как ее можно избежать в дальнейшем.
8 апр 15, 20:47    [17490827]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Мистер Хенки
перестает видеть CLR сборку и не может вызвать CLR процедуру.
Наверное, при этом выдаёт какое-то сообщение об ошибке.
9 апр 15, 08:43    [17491828]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Может в сборке есть утечка памяти ?
9 апр 15, 09:54    [17492142]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Jovanny
Мистер Хенки
перестает видеть CLR сборку и не может вызвать CLR процедуру.
Наверное, при этом выдаёт какое-то сообщение об ошибке.

совершенно верно. В логе сервера приложений . Что то вроде "Произошла ошибка .NET Framework во время выполнения определяемой пользователем подпрограммы или агрегатной функции "имя функции" System.IO.FileNotFoundException: Невозможно загрузить файл или сборку "имя сборки" и т.д. с указанием триггера который вызывает clr процедурку.
9 апр 15, 11:58    [17492919]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
LSV
Может в сборке есть утечка памяти ?

мониторится количество доступной памяти на сервере , она в момент события колебалась в районе 33 гигабайт и никаких аномалий не было. просто вот такая вот штука в логе sql сервера AppDomain 23 () is marked for unload due to common language runtime (CLR) or security data definition language (DDL) operations .
9 апр 15, 12:02    [17492940]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Мистер Хенки
LSV
Может в сборке есть утечка памяти ?

мониторится количество доступной памяти на сервере , она в момент события колебалась в районе 33 гигабайт и никаких аномалий не было. просто вот такая вот штука в логе sql сервера AppDomain 23 () is marked for unload due to common language runtime (CLR) or security data definition language (DDL) operations .


https://support.microsoft.com/en-us/kb/969962
9 апр 15, 12:20    [17493051]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Можно в Performance Monitor промониторить счётчики из раздела .Net CLR Memory по процессу sqlservr.
9 апр 15, 12:32    [17493111]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
virtuOS
Member

Откуда: большая деревня
Сообщений: 265
Мониторили Wirking Set или Private Bytes? Настройка Max Server Memory не учитывает затраты на CLR, и в случае утечек памяти в сборке память таки может закончится. Немного подробнее про менеджер памяти в SQL 2005-2008 и отличия от 2012 тут: https://www.techdays.ru/videos/6568.html
9 апр 15, 12:54    [17493253]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Winnipuh
Мистер Хенки
пропущено...

мониторится количество доступной памяти на сервере , она в момент события колебалась в районе 33 гигабайт и никаких аномалий не было. просто вот такая вот штука в логе sql сервера AppDomain 23 () is marked for unload due to common language runtime (CLR) or security data definition language (DDL) operations .


https://support.microsoft.com/en-us/kb/969962


автор
Имеем
Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64)

автор
When using SQL CLR stored procedures, user defined functions, user defined data types, or user defined aggregates, you many notice one or more of the following error messages being logged in the SQL server error log when running on a 32 bit instance of either SQL Server 2005 or 2008.
9 апр 15, 14:00    [17493762]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
virtuOS
Мониторили Wirking Set или Private Bytes? Настройка Max Server Memory не учитывает затраты на CLR, и в случае утечек памяти в сборке память таки может закончится. Немного подробнее про менеджер памяти в SQL 2005-2008 и отличия от 2012 тут: https://www.techdays.ru/videos/6568.html

Это знаю про Max Server Memory, что есть VAS который потребляет сверх Max Server Memory в 2008r2. Мониторил счетчик "доступно мегабайт" из раздела память . Вот мне интересно, вот это событие "AppDomain 23 () is marked for unload due to common language runtime (CLR) or security data definition language (DDL) operations. " оно ведь, судя по всему, является причиной "исчезновения" сборки ?И возникает только под memory pressure или если есть еще какие-то причины по каким оно может возникнуть ? И не понятно почему оно возникает периодически в момент пиковой нагрузки.
Еще не сказал, что лог windows сервера забит
+
Не удается найти описание для идентификатора события 0 из источника Application. Вызывающий данное событие компонент не установлен на этом локальном компьютере или поврежден. Установите или восстановите компонент на локальном компьютере.

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

К событию были добавлены следующие сведения: 

System.NullReferenceException: В экземпляре объекта не задана ссылка на объект.
   в EnterpriseLibraries.RabbitMQ.Client.RmqProducer.SendMessage(Byte[] message, String routingKey, String contentType, String contentEncoding)
   в SqlClr.StoredProcedures.SendChangesToRabbitMq(String rmqUri, String rmqExchangeName, String rmqExchangeType, String routingKey, String rmqUserName, String rmqPassword, String jsonMessage, Boolean durable)

ресурс сообщения существует, но сообщение не найдено в таблице строк и таблице сообщений



Думаю тут больше вопросов к разработчикам сборки, в плане администрирования сервера ничего уже не придумать.
9 апр 15, 14:27    [17493909]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Мистер Хенки,

System.NullReferenceException: с этого надо было начинать и этим же заканчивать
9 апр 15, 14:29    [17493920]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Winnipuh
Мистер Хенки,

System.NullReferenceException: с этого надо было начинать и этим же заканчивать

ну вот не сразу заметил. Таки из за косяка сборки?
9 апр 15, 14:31    [17493940]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Мистер Хенки
Winnipuh
Мистер Хенки,

System.NullReferenceException: с этого надо было начинать и этим же заканчивать

ну вот не сразу заметил. Таки из за косяка сборки?


Я бы даже так выразился: из-за косяка в коде.
9 апр 15, 14:45    [17494017]     Ответить | Цитировать Сообщить модератору
 Re: пропадает CLR сборка  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Напишите качественный обработчик ошибок в сборке. Сборка "падает" и выгружается.
9 апр 15, 15:08    [17494178]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить