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

Откуда: Moscow
Сообщений: 610
Доброго времени суток!

СУБД:
+
Microsoft SQL Server 2014 - 12.0.2548.0 (X64)
Jun 8 2015 11:08:03
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: )


БД несколько десятков ТБ (изменений в час около 50 Гб)
Поднял AlwaysOn (асинхронный с доступной БД на чтение на реплике)

Вскоре заметил, что журнал лога начал бухнуть выполняю запрос:
select  log_send_queue_size/1024/1024,log_send_rate/1024,last_received_time,last_commit_time,redo_queue_size/1024
from sys.dm_hadr_database_replica_states


log_send_queue_sizeGBlog_send_rateMBlast_received_timelast_commit_timeredo_queue_sizeMB
101422015-08-26 15:53:16.3832015-08-26 02:31:09.09016


Получается, что объем записей на отправку реплике более 1Тб, при этом скорость отправки низкая - 2Мб/сек, на самой же реплике кол-во записей на коммит всего 16Мб.
Т.е. проблема в отправке данных с основного сервера. При этом сеть на основном сервере не занята на 100%, в логах sql нет ошибок про alwayson.

Как понять в чем дело?

Сообщение было отредактировано: 27 авг 15, 19:22
26 авг 15, 15:56    [18071176]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
А что с массивом под лог на реплике? Может в него все уперлось?
26 авг 15, 16:06    [18071261]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Гавриленко Сергей Алексеевич
А что с массивом под лог на реплике? Может в него все уперлось?


Время отклика массивов не более 3 мс
26 авг 15, 16:12    [18071315]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Да и очередь скопилась не на реплике, а на основном сервере.
26 авг 15, 16:14    [18071329]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
помнится у меня такая проблема была при зеркалировании, когда объем неотправленных данных выростал по какой-то причине,производительность накатки данных на реплику сильно падала,
на тот момент временным решением было остановка \старт зеркалирования(несколько раз) , т.к после старта зеркалирования скорость была большая , но потом она падала., затем снова остановка зеркалирования и старт , так догоняли синхронизацию.
26 авг 15, 16:45    [18071564]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Сколько у вас транзакций в секунду(в среднем)?
Можно ли говорить о наличии больших(огромных) транзакций?
Какой утилитой вы проверяли время отклика сети и ее загрузку?
Не включены ли у вас трассы(профайлер,tsql)?
26 авг 15, 16:55    [18071668]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
VladimirSQL
Member

Откуда: Киев
Сообщений: 37
смотрю_тут
помнится у меня такая проблема была при зеркалировании, когда объем неотправленных данных выростал по какой-то причине,производительность накатки данных на реплику сильно падала,
на тот момент временным решением было остановка \старт зеркалирования(несколько раз) , т.к после старта зеркалирования скорость была большая , но потом она падала., затем снова остановка зеркалирования и старт , так догоняли синхронизацию.
Интересно, а с дисковой очередью да и самими дисками что в эти моменты происходило?

andrew shalaev
Получается, что объем записей на отправку реплике более 1Тб, при этом скорость отправки низкая - 2Мб/сек, на самой же реплике кол-во записей на коммит всего 16Мб.
Покажите, пожалуйста, лог по которому вы это определили.
Очень вероятно, что мастер не получил подтверждение о завершении репликации от точки репликации.
26 авг 15, 17:14    [18071844]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
МуМу
Сколько у вас транзакций в секунду(в среднем)?
Можно ли говорить о наличии больших(огромных) транзакций?
Какой утилитой вы проверяли время отклика сети и ее загрузку?
Не включены ли у вас трассы(профайлер,tsql)?


>>Сколько у вас транзакций в секунду(в среднем)?
4k-50k\sec

>>Можно ли говорить о наличии больших(огромных) транзакций?
Отставание AlwaysOn 15 часов (время длинной транзакции в среднем это 1-2 часа) Огромные могут чтения таблиц в несколько терабайт размером, изменения около 10Гб

>>Какой утилитой вы проверяли время отклика сети и ее загрузку?
Perfomance monitor + Resource Monitor

>>Не включены ли у вас трассы(профайлер,tsql)?
Нет.
26 авг 15, 19:40    [18072643]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
VladimirSQL
Покажите, пожалуйста, лог по которому вы это определили.
Очень вероятно, что мастер не получил подтверждение о завершении репликации от точки репликации.


В самом начале поста я выкладывал запрос и его результаты из которых брал информацию
26 авг 15, 19:42    [18072650]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
Basma4
Member

Откуда:
Сообщений: 124
andrew shalaev,

а сколько VLF в логе? в статистике ожиданий есть что нибудь?
27 авг 15, 10:45    [18074867]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Basma4

а сколько VLF в логе? в статистике ожиданий есть что нибудь?


607 VLF
27 авг 15, 13:26    [18076258]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10730
Блог
Можно вначале вот этими советами воспользоваться: https://msdn.microsoft.com/ru-ru/library/dn135317.aspx
27 авг 15, 14:14    [18076604]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlvaysOn  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10730
Блог
...и ещё: http://download.microsoft.com/download/0/F/B/0FBFAA46-2BFD-478F-8E56-7BF3C672DF9D/SQLCAT's Guide to High Availability Disaster Recovery.pdf
27 авг 15, 18:43    [18077952]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
МуМу
Member

Откуда:
Сообщений: 1134
В качестве эксперимента я бы взял копию БД и транзакшион лог. Скопировал все на вторичную ноду и там засек время время восстановления и сопоставил с объемом транзакшион лога.
28 авг 15, 16:21    [18082388]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Еще есть ньюанс. В момент малой интенсивности изменения данных always on уменьшает скорость синхронизации. У вас задержка растет постоянно или она периодически возникает? Можете вывести график задержки?
28 авг 15, 17:21    [18082772]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
МуМу
Еще есть ньюанс. В момент малой интенсивности изменения данных always on уменьшает скорость синхронизации. У вас задержка растет постоянно или она периодически возникает? Можете вывести график задержки?


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

Счетчик:
SQL Server:Database > Log Bytes Flushed/sec выше в несколько раз чем
SQL Server:Availability Replica > Bytes Sent to Replica/sec

Performance counter SQL Server:Availability Replica > Flow Control Time (ms/sec) = 0
Performance counter SQL Server:Availability Replica > Flow Control/sec = 0

Если смотреть по рисунку, то у меня (2)LogCapture огромен, а сеть (3) передает с очень маленькой скоростью, при этом я свободного могу передавать между серверами файлы со скоростью до 600Мб\сек.

К сообщению приложен файл. Размер - 27Kb
28 авг 15, 17:33    [18082825]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
andrew shalaev,

Поделайте снимки sys.dm_os_wait_stats посмотрите разницу между снимками, может вылезет чего интересного в TOP и натолкнет на мысль.
28 авг 15, 17:43    [18082878]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
churupaha

Поделайте снимки sys.dm_os_wait_stats посмотрите разницу между снимками, может вылезет чего интересного в TOP и натолкнет на мысль.


Как это мне поможет? Эти данные уже в очереди на отправку и не имеют никакой связи с текущими процессами на сервере. Данные уже отработали, сброшены в лог, перехвачены процессом AlwaysOn, ждут своей отправки на реплику. Что мне даст в такой ситуации типы ожиданий процессов?
28 авг 15, 17:51    [18082926]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
andrew shalaev
churupaha
Поделайте снимки sys.dm_os_wait_stats посмотрите разницу между снимками, может вылезет чего интересного в TOP и натолкнет на мысль.


Как это мне поможет? Эти данные уже в очереди на отправку и не имеют никакой связи с текущими процессами на сервере. Данные уже отработали, сброшены в лог, перехвачены процессом AlwaysOn, ждут своей отправки на реплику. Что мне даст в такой ситуации типы ожиданий процессов?


ну зачем столько эмоций? поглядите какое многообразие:

select * 
from 
	sys.dm_xe_map_values 
where 
	name='wait_types' 
	and map_value like '%hadr%'
order by 
	map_key asc
28 авг 15, 17:57    [18082954]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
komrad
Member

Откуда:
Сообщений: 5252
andrew shalaev,

а что вернет это?

	select	
			e.endpoint_id
			,e.name
			,SUSER_NAME(e.principal_id) [owner]
			,e.protocol_desc [protocol]
			--,isnull(te.ip_address,'') [ip_address]
			,isnull(te.port,'') [port]
			,isnull(te.is_dynamic_port,'') [is_dynamic]
			,e.type_desc [type]
			,e.state_desc [state]
			,e.is_admin_endpoint
			, dme.is_encryption_enabled
			, dme.encryption_algorithm_desc
			, dme.connection_auth_desc
			, dme.role_desc
	from sys.endpoints e
		left join sys.tcp_endpoints te on e.endpoint_id=te.endpoint_id
		left join sys.database_mirroring_endpoints dme on dme.endpoint_id=e.endpoint_id
	order by e.endpoint_id
28 авг 15, 18:18    [18083036]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
andrew shalaev
... эмоции...


Вот еще, милейщий, вам ссылочка, здесь человеку тоже пришла идея поколупаться в ожиданиях AlwaysOn AG.

A first look at SQL Server 2012 Availability Group Wait Statistics

AlwaysOn Wait Types
28 авг 15, 18:19    [18083041]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
komrad

а что вернет это?

	select	
			e.endpoint_id
			,e.name
			,SUSER_NAME(e.principal_id) [owner]
			,e.protocol_desc [protocol]
			--,isnull(te.ip_address,'') [ip_address]
			,isnull(te.port,'') [port]
			,isnull(te.is_dynamic_port,'') [is_dynamic]
			,e.type_desc [type]
			,e.state_desc [state]
			,e.is_admin_endpoint
			, dme.is_encryption_enabled
			, dme.encryption_algorithm_desc
			, dme.connection_auth_desc
			, dme.role_desc
	from sys.endpoints e
		left join sys.tcp_endpoints te on e.endpoint_id=te.endpoint_id
		left join sys.database_mirroring_endpoints dme on dme.endpoint_id=e.endpoint_id
	order by e.endpoint_id


К сообщению приложен файл. Размер - 23Kb
28 авг 15, 18:30    [18083082]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
churupaha

Вот еще, милейщий, вам ссылочка, здесь человеку тоже пришла идея поколупаться в ожиданиях AlwaysOn AG.

A first look at SQL Server 2012 Availability Group Wait Statistics

AlwaysOn Wait Types



Спасибо, читаю.
28 авг 15, 18:32    [18083091]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
andrew shalaev
churupaha
Вот еще, милейщий, вам ссылочка, здесь человеку тоже пришла идея поколупаться в ожиданиях AlwaysOn AG.

A first look at SQL Server 2012 Availability Group Wait Statistics

AlwaysOn Wait Types



Спасибо, читаю.


Незачто, желаю поскорее найти причину.

Если будут ожидания, которые по виду относятся к AlwaysOn и инфа по ним никак не гуглится. Можно попытать счастье понять смысл ожиданий по названиям функций из StackTrace'ов.

https://www.sqlskills.com/blogs/paul/determine-causes-particular-wait-type/
28 авг 15, 18:42    [18083122]     Ответить | Цитировать Сообщить модератору
 Re: Медленный AlwaysOn  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Было подобное поведение. Но с моим случаем не сходится так как вы утверждаете что у вас постоянно высокая интенсивность. Что бы это проверить, напишите скрипт который будет в большом цикле писать практически непрерывно(ну или минимальная задержка, здесь важна интенсивность транзакций) в какую нибудь малюсенькую таблицу этой же БД(одно поле пускай). Понаблюдайте 10 мин(только выключить не забудьте а то лог сильно выростет). Если на спад синхронизация не пойдет значит это не ваш случай.
29 авг 15, 12:00    [18085262]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить