Серверы корпоративных баз данных

2bbc099f

В качестве примера рассмотрим приложение,


В качестве примера рассмотрим приложение, которое в течение четырех часов каждую ночь должно быть способно заново создавать базу данных. База данных состоит из двух таблиц, одна из которых содержит 10 миллионов записей по 2 Кбайт каждая, а другая - 40000 записей размером примерно по 1 Мбайт, т.е. общим объемом 40 Мбайт. Предположим, что индексация выполняется с помощью отдельной операции. Тогда для создания первой таблицы требуется выполнить 10 миллионов дисковых операций (по 2 Кб) за 4 часа, или 695 операций в секунду. Как показано в таблице 2.4, дисковый накопитель может обеспечить выполнение примерно 60 операций (по 2 Кб) произвольного доступа в секунду в режиме "чистого" диска и примерно 400 операций в секунду в режиме последовательного доступа. Отсюда ясно, что необходимо иметь по крайней мере два параллельно работающих диска, если создание таблицы выполняется последовательными операциями, или 12 параллельно работающих дисков, если выполняются операции произвольного доступа. Обычно сама таблица создается последовательными операциями, в то время как индексы создаются часто операциями произвольного доступа.
Создание второй таблицы требует размещения на диске 40000 записей по 1 Мбайт каждая (всего 40 Гбайт). Хотя конкретные СУБД отличаются обработкой и размещением двоичных данных большого объема (такие объекты часто называются BLOBs - Binary Large OBjects), все они почти наверняка будут использовать для записи каждого элемента данных только один адрес, и в результате, такие записи будут выполняться последовательными операциями. Таким образом, поскольку в нашем случае каждая запись будет состоять примерно из 512 физических записей на диск, в этой работе будут доминировать операции последовательного доступа к диску (даже, если каждая запись хранится отдельно, потребуется не более одного позиционирования головок на все 512 обращений к диску). Для создания этой таблицы требуется выполнить 20480000 операций записи на диск со скоростью примерно 1450 операций в секунду. Для достижения этой скорости по крайней мере 4 диска должны осуществлять запись одновременно. Поскольку для размещения 40 Гбайт данных потребуется не менее 14 дисковых накопителей емкостью 2.9 Гбайт, для достижения требуемой производительности не возникает проблем с обеспечением достаточного количества дисков, но требование параллельной записи на 4 диска диктует, чтобы использовался некоторый механизм, позволяющий расщепить доступ по дискам. Поэтому минимально требуемая конфигурация должна обеспечивать четырехкратное расщепление.
Необходимо помнить, что при достижении таких скоростей дискового ввода/вывода, система должна затрачивать также примерно 1.7 мс процессорного времени на каждую операцию с диском. Создание первой таблицы требует выполнения 695 дисковых операций в секунду, или 1181 мс на каждую секунду процессорного времени. Для создания второй таблицы требуется выполнить 1425 дисковых операций в секунду, или примерно 2425 мс на каждую секунду процессорного времени. В сумме это составляет примерно 3606 мс на каждую секунду процессорного времени. Таким образом можно сделать вывод о том, что четыре процессора 50 МГц SuperSPARC должны заниматься исключительно обслуживанием дисков. Кроме того, следует заметить, что все данные для формирования таблиц базы данных откуда-то должны поступить, а обработка приходящих данных также требует некоторого процессорного времени. Предположим, что данные поступают по сети FDDI с использованием протоколов TCP/IP и мы ожидаем получить всего 60 Гбайт данных за 4 часа, т.е. скорость поступления данных составляет примерно 4.2 Мбайт/с. Если взять максимальный размер пересылки по FDDI равным 4500 байт, это составит примерно 949 пакетов в секунду. На обработку каждого пакета процессор должен затратить 400 микросекунд (0.4 мс), поэтому обработка всего потока обойдется нам в 380 мс процессорного времени на каждую секунду. Эти накладные расходы могут еще увеличиться, если данные не занимают полностью 4500-байтового пакета (например, СУБД Oracle version 6 просто осуществляет пересылку в пакете одного поля одной записи независимо от его размера).
Для обеспечения дискового и сетевого ввода/вывода нам достаточно четырех процессоров. Однако в конфигурацию системы необходимо включить по крайней мере еще один дополнительный процессор, чтобы выполнять любую другую работу. Следует отметить, что для работы самой СУБД, а также для любой другой обработки, которая должна выполняться во время ночных перезагрузок базы данных, необходимо некоторое процессорное время. Более того, необходимо предусмотреть небольшой поправочный коэффициент, поскольку проведенный анализ предполагал, что работа может осуществляться со средней скоростью и закончится в точно определенное время. Однако это мало вероятно, так что в системе необходимо предусмотреть некоторые дополнительные ресурсы из-за того, что неизбежно ее средняя производительность окажется меньше, чем было вычислено.
Таким образом, в состав конечной конфигурация системы следует включить 6 процессоров. Поскольку минимальный объем дискового пространства составляет 40 Гбайт, вполне разумным кандидатом для выбора системы представляется SPARCcenter 2000 (см. табл. 4.13 - 4.15). Для хранения только данных требуются четырнадцать дисков емкостью 2.9 Гбайт, так что в конфигурацию системы необходимо включить по крайней мере 16 накопителей (отдельный диск требуется для размещения системы и журнала СУБД). Поскольку в обращениях к дисковой подсистеме доминируют последовательные операции, при конфигурировании дисков СУБД необходимо подключать не более 4 дисков к одному главному адаптеру SCSI. Необходимость 4-кратного расщепления увеличивает общее количество дисков до восемнадцати. Они будут подключаться к пяти главным адаптерам DWI/S: по 4 диска на 4 адаптера для реализации расщепления, а также системный и журнальный диски на отдельном главном адаптере. Конструкция дисковых шасси определяет необходимость установки пяти шасси в одной стойке (кабинете) расширения. (Восемнадцать дисков могли бы быть установлены и в одной основной стойке, но в ней невозможно сконфигурировать необходимую комбинацию дисков и шин SCSI). Для подключения 5 плат интерфейса SCSI и одной (двухслотовой) платы интерфейса FDDI всего требуется 7 слотов SBus. Для установки 6 процессоров необходимы три системных платы, обеспечивающие 12 слотов SBus. Сам по себе процесс загрузки СУБД не предъявляет каких-либо особых требований к объему основной памяти. Базовые 64 Мбайт на процессор или всего 384 Мб представляют собой вполне умеренную оценку. Этот объем близок к рекомендованному (1% от размера базы данных составляет 400 Мбайт).

Содержание раздела