Модель процессов Sybase

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

ASE (Adaptive Server Enterprise - сервер масштаба предприятия) фирмы Sybase наиболее широко используется в системах Sun и особенно в средах OLTP. В этой главе мы рассмотрим модель процессов, управление памятью, а также характеристики хранения данных ASE. Мы рассмотрим также системные базы данных и прогрессивные возможности параллельных запросов Sybase ASE 11.5. В завершение мы рассмотрим архитектуру Sybase Adaptive Server IQ with Multiplex.

Для эффективного использования ресурсов ЦП и памяти, Sybase ASE использует многопотоковую архитектуру. Обрабатывая планирование и диспетчеризацию пользовательских потоков и внутренних потоков СУБД, многопотоковое ядро Sybase вместо потоков Solaris использует собственную потоковую модель. Смотрите раздел "Многопотоковые архитектуры" в главе 5 для получения более детальной информации по многопотоковым архитектурам.

Поддержка симметричного мультипроцессирования в Sybase ASE обеспечивается VSA (Virtual Server Architecture - архитектурой виртуального сервера), благодаря которой поддерживаются многочисленные механизмы СУБД, работающие как кооперирующиеся процессы, связывающиеся между собой посредством разделяемой памяти и выполняющие обращения к общим базам данных и общим структурам данных в памяти. Механизмы СУБД обеспечивают полностью симметричную среду для выполнения пользовательских задач: каждый из них способен выполнять все функции, включая дисковый ввод/вывод, блокирование, а также сетевой ввод/вывод. Использование множества механизмов для выполнения пользовательских задач протекает незаметно - пользователь видит только одну сервисную функцию.

Sybase ASE обычно конфигурируется на серверах Sun с одним механизмом СУБД на каждый ЦП (в предположении, что рабочую нагрузку создает преимущественно Sybase). В больших системах с очень интенсивными рабочими нагрузками для каждого ЦП может и не назначаться по одному механизму; свободным должен быть один или более ЦП для обработки дисковых и сетевых прерываний ввода/вывода.

ASE также обеспечивает полностью симметричную среду для выполнения задач пользователей, включая особенность, называемую MNE (Multiple Network Engine -множественный сетевой механизм). До выхода ASE 11.9.x существовало одно-един-ственное исключение на полное симметричное выполнение задачи: в целях упрощения все поступающие в систему регистрации пользователей обрабатывались первым механизмом (за номером 0). После того как сеанс пользователя установил сеанс ре-

гистрации в системе, включая аутентификацию и организацию среды, связь передается одному из остальных механизмов. Начиная с ASE 19.9.x, механизмом 0 обрабатывается только вызов select; вся обработка, связанная с установлением связи и регистрацией в системе, сейчас назначается механизму в соответствии с загрузкой.

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

После назначения механизму пользовательского соединения он порождает задачу и помещает ее в очередь ожидания ("бездействия"). И с каждым импульсом сигнала времени выполняется проверка поступающих команд для этой задачи. В случае получения команды задача "пробуждается" и помещается в очередь выполнения. При достижении задачей вершины очереди уже следующий доступный механизм выполняет планирование задачи и начинает ее выполнение. Если задаче необходимо ждать операцию ввода/вывода, то она возвращается в очередь "бездействия", ожидая завершения операции ввода/вывода. Всякий раз задействуется планировщик, механизм запускает свою служебную программу ввода/вывода, чтобы определить, был ли выполнен запрос ввода/вывода. При возврате ввода/вывода задача вновь размещается в очереди выполнения и планируется следующему доступному механизму.

Если задаче необходимо вернуть данные клиенту, она производит сетевой запрос на операцию ввода/вывода. До выхода ASE 12.0 механизм, выполняющий в настоящий момент задачу, сначала сохранял необходимые детали для предстоящего сетевого ввода/вывода, а затем размещал запрос в списке ожидания ввода/вывода того механизма, который был первоначально назначен пользовательскому соединению. Задача обслуживания ввода/вывода посылала сетевой запрос "send" ("переслать") сетевому уровню ОС Solaris. После этого задача возвращалась в очередь выполнения для продолжения выполнения на каком-нибудь механизме. Начиная с ASE 12.0, когда механизму необходимо переслать данные клиенту, он делает это напрямую.

MNE значительно увеличивает возможности ASE по поддержке большого числа одновременно работающих пользователей и масштабированию сетевой производительности через дополнительные механизмы.

На рисунке 10.1 представлена модель потоков Sybase ASE.

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

Начиная с ASE 11.9.x, в дополнение к очереди глобального выполнения для каждого механизма тоже поддерживаются очереди выполнения. Каждая задача обладает некоторым сходством с механизмом СУБД: при выполнении задачи она приобретает сходство с механизмом, на котором выполняется, а после возврата центрального процессора будет помещена обратно в очередь выполнения этого же механизма.

Каждая задача обладает соответствующим приоритетом, который ASE может увеличить для критически важных задач или ожидающих ресурс продолжительное время. Вы также можете присвоить приоритеты регистрациям (пользователей), процедурам или приложениям с помощью sp_bindexeclass и соответствующих системных процедур. Вы также можете создать группу механизмов с помощью sp addengine и связать объекты выполнения с группой механизмов; полученный эффект аналогичен набору процессоров Solaris

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

Подробнее в этой категории: Управление памятью Sybase »
Управление памятью Sybase
Кэш данных
Именованные кэши
Очистка страниц
Стратегия выборка-сброс

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


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