Попробую рассказать немного о том, какие средства мониторинга доступны в SQL Server 2014, чтобы проводить диагностику и оценивать работу Buffer Pool Extension.
В первую очередь появилось системное представление sys.dm_os_buffer_pool_extension_configuration, которое возвращает информацию о конфигурации BPE. Оно показывает включен или нет BPE, расположение файла и его размер. И хотя из описания следует, что может быть несколько файлов BPE, включить их невозможно, по крайней мере в CTP1. Возможно позже ситуация изменится и описание представления будет доработано.
Также в системное представление sys.dm_os_buffer_descriptors добавляется столбец is_in_bpool_extension, что позволяет получить информацию об отдельных страницах. Т.е. теперь можно получить список отдельных страниц с разрезом по базам данных и по отдельным объектам с учетом, сколько и какие конкретно страницы находятся в BPE. Например, вот такой запрос позволяет увидеть, какой процент страниц базы данных находится в памяти, а какой в BPE.
use [BufferPoolExtension_test];
go
select
db_name(database_id) as [db_name],
is_in_bpool_extension,
cast(count(*) * 100.0 /
(select count(*) from sys.dm_os_buffer_descriptors where database_id = db_id())
as decimal(5, 2)) as [buffer pool, %]
from sys.dm_os_buffer_descriptors
where
database_id = db_id()
group by
database_id, is_in_bpool_extension;
go
Результат 22% закэшированных страниц в памяти, а остальное в BPE:
Extended Events набирают все большую популярность и для мониторинга BPE доступно 4 события.
XEvent |
Описание |
sqlserver.buffer_pool_extension_pages_written |
Page or contiguous set of pages evicted into the buffer pool extension cache. |
sqlserver.buffer_pool_extension_pages_read |
Page is read from the buffer pool extension cache. |
sqlserver.buffer_pool_extension_pages_evicted |
Page is evicted from the buffer pool extension cache. |
sqlserver.buffer_pool_eviction_thresholds_recalculated |
Lazywriter and/or worker clock has wrapped the BUF array and thresholds are re-calculated. |
Кроме того, можно воспользоваться следующими счетчиками производительности в Performance Monitor.
- SQLServer:Buffer Manager\Extension page writes/sec
- SQLServer:Buffer Manager\Extension page reads/sec
- SQLServer:Buffer Manager\Extension outstanding IO counter
- SQLServer:Buffer Manager\Extension page evictions/sec
- SQLServer:Buffer Manager\Extension allocated pages
- SQLServer:Buffer Manager\Extension free pages
- SQLServer:Buffer Manager\Extension in use as percentage
- SQLServer:Buffer Manager\Extension page unreferenced time