Настройка ввода/вывода

Оценить
(0 голоса)

Эффективное управление вводом/выводом является критичным с точки зрения производительности БД. В настоящем разделе будут проанализированы проблемы производительности и мониторинга, связанные с асинхронной упреждающей выборкой, производительностью журналов и балансировкой ввода/вывода между дисковыми устройствами.

Асинхронная упреждающая выборка

APF (Asynchronous Prefetch - асинхронная упреждающая выборка), введенная с ASE 11.5, пытается заносить страницы памяти в кэш до того, как какой-нибудь запрос обратится к ним. Упреждающая выборка может улучшить производительность последовательных сканирований, dbcc-проверок, восстановления и других действий, требующих считывания больших объемов данных. Эта технология в меньшей степени пригодна для большинства запросов OLTP, где последовательные сканирования обычно обозначают проблему (такую как ошибка "непопадания" индекса).

Сервер ASE принимает осмысленные решения относительно того, какие страницы памяти следует выбрать и когда следует автоматически отключить механизм APF во избежание ненужных операций ввода/вывода. Важно избегать чрезмерного увлечения APF: в противном случае страницы, содержащие выбранные с упреждением данные, возможно, нуждаются в восстановлении прежде, чем к ним будет выполнен запрос.

Асинхронная упреждающая выборка пытается использовать большой ввод/вывод, поэтому будет полезно, если вы выделите достаточное количество буферов ввода/вывода размером 16 Кбайт, особенно в многопользовательских средах или в базах данных с разделенными на разделы таблицами.

В таблицах с интенсивными операциями вставки, изменения и удаления, цепочки страниц памяти могут стать запутанными, распределяться между различными экстентами или между различными устройствами распределения, снижая тем самым эффективность механизма APF. Чтобы предусмотреть пространство для расширения индексов, следует определить малое значение параметра fillfactor; его значение устанавливается либо с помощью sp_configure, либо с помощью команды create index. Однако следует иметь в виду, что установка слишком малого значения параметра fillfactor приводит к увеличению числа, страниц памяти, подлежащих считыванию в течение сканирования индекса, и увеличивает объем памяти буферного кэша, необходимой для кэширования страниц индексов.

Значение табличного параметра max_rows_per_page может быть уменьшено в целях предоставления пространства для расширения в пределах строк (значение параметра max_rows_per_page устанавливается либо с помощью хранимой процедуры sp_chgattribute, либо с помощью команд create index, create table или alter table). Пересоздание индексов или перезагрузка таблиц устранит запутанность цепочки страниц.

Высокое значение показателей APF I/O Overloads указывает на проблемы с дисковыми структурами ввода/вывода (вы можете управлять этой особенностью, увеличивая значение конфигурационного параметра disk i/o structures) или на конкуренцию за захват дисковых семафоров. Если событие Device Semaphore Waited в выводе sp sysmon показывает высокое процентное значение, следует проанализировать физическое расположение на диске интенсивно используемых объектов Sybase и рассмотреть возможность их более сбалансированного размещения на дисках.

Показатель APF Limit Overloads означает, что запросы APF превысили лимиты пулов, установленные глобально с помощью конфигурационного параметра global async prefetch limit. С помощью sp_poolconfig этим лимитом также можно управлять для каждого буферного пула.

Анализ показателей APFs Used и APF Discards обеспечивает понимание характера использования кэша. Если APF Discards имеет высокое значение, a APFs Used -очень низкое, то, возможно, система выполняет упреждающую выборку бесполезных данных. Если оба показателя имеют высокие значения, то увеличение размера буферного пула могло бы обеспечить достаточно продолжительное удержание страниц в кэше.

Производительность протоколирования
Transaction Management
Настройка ЦП
Настройка возможностей параллельной обработки
Процентное значение показателя

Добавить комментарий


Защитный код
Обновить