Производительность Caché Оптимизация и мониторинг Дмитрий Носов «Школа Инноваций InterSystems 2007»

Презентация:



Advertisements
Похожие презентации
Надежные системы. Планирование задач. API конфигурации. Дмитрий Носов «Школа Инноваций InterSystems 2007»
Advertisements

Новые возможности Егоров Борис «Школа Инноваций InterSystems 2007»
1.Доступ к словарю базы данных 1.v$ 2.dba_ 3.all_ 4.user_ 2.Просмотр системных view cистемные view - dict (dictionary) столбцы системных view – dict_columns.
Система контроля прав доступа При помощи процедур и триггеров в MySQL.
1 Массивы 2 Опр. Массивом называется совокупность однотипных данных, связанных общим именем. Основные характеристики массива: 1. Имя массива 2. Тип компонентов.
Опыт проведения нагрузочного тестирования DocsVision Виктор Сущев DocsVision Директор по консалтингу.
Hibernate cashe. Part 4 Для студентов старших курсов университетов Ст.преподаватель Дудник О.А.
Расширенные темы 1. SQL запросы Язык JPQL является абстракцией и «общим знаменателем» всех SQL диалектов. Очевидно, что конкретный диалект обладает бОльшими.
PL/SQL Курсоры. Курсор – специальный элемент, связанный с SQL-оператором SELECT. Объявление курсора происходит в секции объявления базового блока. Работа.
Администрирование информационных систем Администрирование БД лекция 5.
Особенности использования TimesTen In-Memory Database в высоконагруженной среде Михаил Гранкин, QIWI.
Системные механизмы Windows. Системные механизмы диспетчеризация ловушек, в т.ч. прерываний, DPC (deferred procedure call), APC (asynchronous procedure.
Основы SQL Запросы к базе данных. Что такое база данных SQL? SQL (Structured Query Language - «Структурированный язык запросов») - универсальный компьютерный.
1 Структура диска Файловые системы ОС Windows NT/2000/XP/7 - FAT (File Allocation Table) - NTFS (New Technology File System) Повторение.
Файл Сервер ORACLE База данных Экземпляр Процесс Базы данных Процесс Базы данных Процесс Базы данных Процесс Базы данных Процесс Базы данных SGA База данных.
Устройство компьютера. 2 Системный блок Процессор (CPU = Central Processing Unit) – микросхема, которая обрабатывает информацию и управляет всеми устройствами.
Операционные системы Введение (часть 4) 4.Основы архитектуры операционных систем 4.1.Базовые понятия 4.2.Свойства ОС 4.3.Структура ОС 4.4.Логические функции.
1 БАЗЫ ДАННЫХ Использование SQL для построения запросов. ЗАНЯТИЕ 6 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа І-ІІІ ступеней.
Операционная система. Базовые понятия Операционная система – это комплекс программ, обеспечивающий контроль за существованием, распределением и использованием.
1 Программное обеспечение (ПО) или «софт» (software) По назначению Системное Прикладное Инструментальное По способу распространения Проприетарное Открытое.
Транксрипт:

Производительность Caché Оптимизация и мониторинг Дмитрий Носов «Школа Инноваций InterSystems 2007»

Производительность Операционная система CachéCaché ПриложениеПриложение Аппаратное обеспечение

Чем быстрее, тем лучше Чем быстрее, тем лучше –Память –Процессоры –Ввод/вывод 64-х разрядные платформы 64-х разрядные платформы –Позволяют адресовать буферный пул > 2Гб –НО ! Вычисления могут работать даже медленней, чем на 32-х разрядных платформах

Производительность Операционная система CachéCaché ПриложениеПриложение Аппаратное обеспечение

Операционная система Виртуальная память Виртуальная память –Фиксированный размер –Разные диски Фоновые и активные задачи Фоновые и активные задачи –Режим «Background Services» для Windows Монитор производительности Монитор производительности –Task Manager –perfmon.exe –Продукты третьих фирм (BMC Patrol, WMI) Файловая система: производительность, надежность, размер файла Файловая система: производительность, надежность, размер файла –Для Windows – NTFS –Для Unix – выбор за Вами

Производительность Операционная система CachéCaché ПриложениеПриложение Аппаратное обеспечение

Caché Дисковая система Дисковая система Память Память Мониторинг Мониторинг Дополнительно Дополнительно

Caché - дисковая подсистема Разбиение по контроллерам и дискам. Разбиение по контроллерам и дискам. –Баз данных –WIJ файл –Журнал –База данных CACHETEMP Заранее установленный размер CACHE.DAT Заранее установленный размер CACHE.DAT

Caché – шифрование БД Шифрование базы данных ((# of blocks read) * (8192 bytes / block) * (30 CPU clock ticks / byte)) / (# of CPU clock ticks / second) ((# of blocks read) * (8192 bytes / block) * (30 CPU clock ticks / byte)) / (# of CPU clock ticks / second) На машине с 1 Ггц процессором задержка в чтении 1 блока составит 0.24 милисекунды

Caché- память OS ~ ??? Мб OS ~ ??? Мб Ядро Caché ~ 16 Мб Ядро Caché ~ 16 Мб ??? Мб на процесс * количество процессов = ??? ??? Мб на процесс * количество процессов = ??? – от 2Мб до 48 Mб на процесс Буфер программ – 32Кб/программу, max=64Кб Буфер программ – 32Кб/программу, max=64Кб –^GLOSTAT - Routine Buffer Transfers «Куча» (Heap) – системные таблицы Caché «Куча» (Heap) – системные таблицы Caché Буфер для 8-ми и 2-х Кб баз данных Буфер для 8-ми и 2-х Кб баз данных

Caché - память Буфер глобалов и виртуальная память Буфер глобалов и виртуальная память 123 Optimal

Caché - память Буфер глобалов выделяется автоматически, но можно и вручную Буфер глобалов выделяется автоматически, но можно и вручную

Caché - мониторинг Портал управления Caché + Task Manager + perfmon.exe Портал управления Caché + Task Manager + perfmon.exe ^GLOSTAT ^GLOSTAT ^PERFMON ^PERFMON ^%SYS.MONLBL ^%SYS.MONLBL ^mgstat ^mgstat $SYSTEM.Monitor object - пользовательские параметры $SYSTEM.Monitor object - пользовательские параметры CSTAT.exe CSTAT.exe

Caché - мониторинг Caché с версии 5.1 имеет Caché System Monitor Caché с версии 5.1 имеет Caché System Monitor –Сервис для сбора статистики –Генерация предупреждений –Оповещение по Оповещение о системных ошибках Оповещение о системных ошибках –~ 50 вариантов ошибочных ситуаций, например: ошибки записи в БД, ошибки журнала и т.п. Позволяет создавать пользовательские классы для мониторинга Позволяет создавать пользовательские классы для мониторинга

^GLOSTAT Сбор статистики или куммулятивных или посекундных метрик производительности: Сбор статистики или куммулятивных или посекундных метрик производительности: –# обращений к глобалам –# журнальных записей –эффективность использования кеша

^GLOSTAT Statistics Total Global references (all): 418,122 Global update references: 28,797 Routine calls: 27,600 Routine buffer loads and saves: 279 Routine lines: 44,481 Routine not cached: 408 Logical block requests: 128,029 Block reads: 650 Block writes: 128 WIJ writes: 58 Cache Efficiency: 537 Journal Entries: 9,036 Journal Block Writes: 16

^PERFMON ^PERFMON Сбор метрик по Сбор метрик по –Процессам –Глобалам –Программам –Сети

^PERFMON - пример Global Activity by Global Global Activity by Global Started: 06/24/ :43:30PM Collected: 06/24/ :45:22PM Name Directory TotRefs % Refs GloSet GloKill BlkAlloc JrnEntry PhyBlkRd PhyBlkWrt LogBlkRd Other SYS d:\cxxbeta\mgr\ rOBJ...ta\mgr\cachelib\ ME.BalanceD d:\lehman\ TIB.QueueIN d:\lehman\ SUPPORT.Mess...d:\lehman\ TIMINGS d:\lehman\ OBFillsD d:\lehman\ OBChangesD d:\lehman\

^PERFMON - пример Routine Activity by Routine Routine Activity by Routine Started: 06/24/ :43:30PM Collected: 06/24/ :45:22PM Name Directory M Lines % Lines RtnLoads RtnFetch Line/Load Name Directory M Lines % Lines RtnLoads RtnFetch Line/Load Other PERFMON d:\cxxbeta\mgr\ ME.Messages.1 d:\lehman\ ME.Tools.1 d:\lehman\ SUPPORT.Tools.1d:\lehman\ ME.OrderReply.1d:\lehman\ %ooLibrary.L......ta\mgr\cachelib\ %ooLibrary.L......ta\mgr\cachelib\

^%SYS.MONLBL Сбор статистики Сбор статистики –по времени исполнения каждой строки кода –# обращений к глобалу –# чтений блоков данных

^%SYS.MONLBL Routine ^ME.Messages.1... Line RtnLine Time set cnt = $i(^TIMINGS("OrderActionMessage","Records")) if cnt > 1000 { set ^TIMINGS("OrderActionMessage","Records") = set SClock = $get(^TIMINGS("OrderActionMessage","LClock")) set EClock = $piece($ztimestamp,",",2) if SClock '= "" { set ClockDelta = EClock - SClock if ClockDelta > 0 { set ^TIMINGS("OrderActionMessage","Results",$i(^TIMINGS("OrderActionMessage","Results"))) = (jnk-1)/ClockDelta } else { set ^TIMINGS("OrderActionMessage","Results",$i(^TIMINGS("OrderActionMessage","Results"))) = " " } } set ^TIMINGS("OrderActionMessage","LClock") = EClock } ;; Measurements

^mgstat Можно посмотреть статистику в течении дня Можно посмотреть статистику в течении дня s f="c:\a\c.txt" o f:"NW" w !,"opend" u f d ^mgstat

Caché - мониторинг BMC Patrol BMC Patrol – –Обеспечивает сбор и мониторинг общекорпоративной статистики, в т.ч. и статистики Caché

Caché - мониторинг Simple Network Management Protocol – SNMP Simple Network Management Protocol – SNMP Windows Management Instrumentation - WMI Windows Management Instrumentation - WMI

Caché - дополнительно ^GCOMPACT ^GCOMPACT Журналирование выделенных глобалов (до версии 5.1) Журналирование выделенных глобалов (до версии 5.1) Partial WIJ (до версии 5.1) Partial WIJ (до версии 5.1) 8 Кб базы данных 8 Кб базы данных Масштабирование системы Масштабирование системы –Кластеры (Open VMS, Tru64Unix) –Многопроцессорные системы –ECP –Shadow Server для аналитической обработки данных

Производительность Операционная система CachéCaché ПриложениеПриложение Аппаратное обеспечение

Приложение Блоки данных Блоки данных Блокировки Блокировки Программы Программы Локалы или глобалы? Локалы или глобалы? Синтаксис COS Синтаксис COS Objects Objects SQL SQL

Блоки данных Распределение данных по глобалам Распределение данных по глобалам –не хранить обычные и агрегированные данные в одной глобали Расщепление блоков (Block Split) Расщепление блоков (Block Split) –8k и 2k блоки –$SortBegin & $SortEnd CACHETEMP – In-Memory Database CACHETEMP – In-Memory Database –Временные данные –Нет журналирования Пакетные задания, вымывание буфера Пакетные задания, вымывание буфера –$ZU(68,25,…) Приоритет процессов Приоритет процессов –%PRIO

Блокировки «Горячие» блокировки «Горячие» блокировки $Increment $Increment %OpenId(id,Concurency) %OpenId(id,Concurency) Shared & Exclusive lock Shared & Exclusive lock Immediate unlock Immediate unlock

Программы Внутренний вызов намного быстрее внешнего Внутренний вызов намного быстрее внешнего В Caché полностью переработан механизм обработки стека программ и повышена производительность обработки стека программ В Caché полностью переработан механизм обработки стека программ и повышена производительность обработки стека программ –Наиболее часто используемые ищутся быстрей –Изменено управление буфером программ –Изменено управление стеком программ (возврат по стеку возвращает управление старому коду, если он менялся)

Переменные Локальные или глобальные ? Локальные или глобальные ? Если много, то Если много, то –^CacheTempXXX($j,…) –^mtempXXX($j,…) Process Private Globals - ^||globals Process Private Globals - ^||globals –Глобалы, видные только процессам, их породившим –Удаляются вместе с процессом –Производительность глобалов, смепированных в CACHTEMP –Размер неограничен в отличии от локальных переменных

Новый синтаксис $Increment $Increment $ListBuild vs $Piece $ListBuild vs $Piece $Case $Case ||, && ||, && $Order $Order Минимизация количества строк Минимизация количества строк $ListNext $ListNext –$ListNext(list, ptr, val) быстрее в 400 раз, чем цикл с $List

Caché Objects Новое в Version Checking Новое в Version Checking –Позволяет определить свойство, которое будет хранить версию объекта через параметр класса VERSIONPROPERTY –Полезно для оптимистической конкуренции многопользовательского доступа к объектам

Caché SQL Индексы, BitMap Индексы, BitMap –SSN FROM MyTable WHERE Name LIKE :Param1 AND Age>:Param2 Индексы по Name & Age увеличат скорость выбора, но уменьшат скорость транзакцийИндексы по Name & Age увеличат скорость выбора, но уменьшат скорость транзакций Bitslicing Index Bitslicing Index –SELECT SUM(f) FROM t использует bitslice index по t.f в 5.1использует bitslice index по t.f в 5.1 В к этому добавятся дополнительные запросы.В к этому добавятся дополнительные запросы.

Caché SQL Selectivity, ExtentSize - $system.SQL.TuneTable() Selectivity = % строк или количество, которые удовлетворяют заданному значению. Selectivity поля Gender (род) будет = 50% Selectivity для уникального значения = 1 В таблице из 100 записей SSN будет = 1% Extent Size = ориентировочное количество строк в таблице – –INNER JOIN для двух таблиц ищет таблицу с минимальным количеством строк. Два варианта настроить Selectivity & ExtentSize 1) Портал управления 2) Do $system.SQL.TuneTable("Index.Person",1,1) – –Значения, возвращаемые TuneTable могут быть перезаписаны приложением

Caché SQL - TuneTable USER>d $system.SQL.TuneTable("Index.Person",1,1) TABLE: Index.Person Current Extentsize = Calculated Extentsize = 20 Updated FIELD: Boss Current Selectivity = Calculated Selectivity = % Table definition updated. Class definition updated. FIELD: City Current Selectivity = Calculated Selectivity = % Table definition updated. Class definition updated.

Caché SQL %FULL, %INORDER (5.0) %FULL, %INORDER (5.0) %inorder указывает оптимизаторупуть выполнения операции JOIN в необходимом порядке. %inorder указывает оптимизаторупуть выполнения операции JOIN в необходимом порядке. %full дает задачу оптимизатору проверить все возможные альтернативы путей выполнения запросов. %full дает задачу оптимизатору проверить все возможные альтернативы путей выполнения запросов. Рекомендуется для Embedded SQL и Class SQL Queries, где время компиляции не столь критичноРекомендуется для Embedded SQL и Class SQL Queries, где время компиляции не столь критично

Caché SQL %NOCHECK, %NOLOCK, %NOINDEX, %NOTRIGGER %NOCHECK, %NOLOCK, %NOINDEX, %NOTRIGGER –Рекомендуется применять в случаях массовой загрузки данных в однопользовательском режиме в случае гарантированной целостности создаваемых данных

Caché SQL Просмотр кода кэшируемых запросов - Query Analysis Tool Просмотр кода кэшируемых запросов - Query Analysis Tool –Позволяет посмотреть план выполнения SQL запроса

Caché SQL Хранимые процедуры + прямой доступ Хранимые процедуры + прямой доступ –Используя прямой доступ в хранимых процедурах можно в несколько раз повысить производительность получения данных

Спасибо за внимание! Вопросы? Дмитрий Носов «Школа Инноваций InterSystems 2007»