Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 52
Текст из файла (страница 52)
Дополнительные вопросы применения баз данных251Для получения ответа на перечисленные и подобные вопросы нужно прежде всего учитывать следующие факторы:1) особенности прикладной задачи, а также методы и средства ее решения;2) характеристики выбранной СУБД;3) возможности и эффективность функционирования операционнойсистемы;4) характеристики аппаратной части и сетевого оборудования.Замечание.Неэффективное решение прикладной задачи может свести на нет остальные усилия. Например, для выбора записи можно использовать сканирование всей таблицы с проверкой условия или операцию выборки - операторS ELECT языка SQL. В первом случае в среднем требуется просмотреть половину таблицы, что при размере таблицы в десятки гигабайтов может составлять единицы-десятки минут. Во втором случае операция выборки составляет не более нескольких секунд.
Другой пример: игнорирование при созданиибазы данных преимуществ определения ключей и индексирования таблиц.Особенный выигрыш от последнего в производительности получается привыполнении типовых или повторяющихся запросов к базе данных. Главное,что реорганизация базы данных здесь не требует изменения кода приложения. А эффект может быть существенным. Неучет этого обстоятельства сильно замедляет работу приложения.Параметры прикладной задачи тесно связаны с характеристиками выбранной СУБД (вторая составляются).
Эта связь особенно сильно проявляетсяв случае, когда приложение выполняется в режиме интерпретации СУБД(подраздел 1.4). Детальный перечень характеристик СУБД приведен в табл.9.1 настоящего подраздела. При установке СУБД и при ее эксплуатации следует не забывать о сборе и анализе статистики о процессах и событиях. Нужно обратить внимание на такие явления, как обработка транзакций (времявыполнения), возникновение блокировок при использовании разделяемыхресурсов, использование кэш-памяти при обращении к дискам, а также нехватка буферной или дисковой памяти. Все негативные явления, как правило, существенно снижают показатели работы информационной системы и вто же время могут быть своевременно выявлены и устранены настройкойСУБД, приложения и операционной системы.Программной средой функционирования приложения и/или СУБД является операционная система (третья составляющая).
От нее тоже зависитинтегральная оценка работы информационной системы. Иногда выбор ОСносит принципиальный характер. Например, требование со стороны СУБДсреды Windows, отвергает возможность использования UNIX и MS DOS.Важнейшей частью вычислительной системы является аппаратура (четвертая составляющая). Поскольку необходимым условием построения эффективной информационной системы является обоснованное определение252Часть 2. Проектирование и использование БДструктуры аппаратной части системы, остановимся на этой задаче более подробно.При решении задач определения структуры программно-аппаратныхсредств автоматизированной системы обработки данных в большинстве случаев в силу большой неопределенности и огромного числа противоречивыхфакторов для принятия решения достаточно экспертной оценки.Предположим, мы имеем клиент-серверную систему с выбранными и рационально сконфигурированными ОС и СУБД, а также эффективными приложениями.
Стоит вопрос о том, какими возможностями должны обладатькомпьютеры этой распределенной системы с учетом имеющихся финансовыхограничений.Вопрос распределения вычислительной мощности между клиентскимии серверными машинами, очевидно, следует решать под углом зрения используемой модели клиент-сервер (подраздел 4.2). Более нагруженнаячасть системы должна быть обеспечена большими возможностями. Приэтом нужно учитывать специфику решаемых задач на клиентской и на серверной сторонах.Ввиду большого разнообразия решаемых задач относительно клиентской части ограничимся общей рекомендацией: проанализировать потребности ресурсов ЭВМ и в пределах имеющихся финансов их удовлетворить.Например, приложения, требующие обработки видеоизображений, должны выполняться на компьютерах с хорошими характеристиками видеосистем (достаточным объемом видеопамяти, неплохим разрешением мониторов, обеспечивающим нужную скорость обработки изображений быстродействием процессора).Относительно серверной части систем можно высказаться более определенно, поскольку его требования к системным ресурсам в меньшей степенизависят от специфики решаемых прикладных задач.
Рассмотрим спецификуиспользования серверами важнейших ресурсов компьютера: основной памяти, центрального процессора и внешней памяти.Основная память. Характеристики основной памяти (ОП), главным образом ее объем, являются важнейшими среди других характеристик компьютера. При выборе компьютера целесообразно предусмотреть возможностьувеличения объема памяти в будущем. Многие современные компьютерыпозволяют легко нарастить первоначально имеющийся объем памяти.В основной памяти хранятся программы и данные. При работе с СУБД,как правило, большая часть ОП используется в качестве буфера (кэша) дляобмена с внешней памятью. Наличие кэша достаточного объема позволяетуменьшить число операций физического ввода/вывода и повышает производительность вычислительной системы.
Для оценки получаемого выигрышаотметим, что обращение к основной памяти выполняется примерно в 30000раз быстрее, чем к магнитному диску.9. Дополнительные вопросы применения баз данных253Основную долю в общем объеме ОП занимает область кэша, рассмотримкак определить его размер.
Точное определение оптимального размера буферной области - непростая задача. Главная причина этого - в заранее неизвестных потребностях в данных со стороны приложений, зависящих от множества факторов (решаемых задач, характеристик клиентских машин, категорий пользователей и т. д.).Для определения размера кэша можно воспользоваться следующимиподходами: моделированием процессов обработки информации на сервере или подбором параметров кэша на основе анализа статистики потребления памяти. Многие современные С У Б Д имеют средства оценки эффективности использования кэша.
Часто кэш реализуется как массив разделяемой памяти, размер которого определяется специальным параметромв управляющем файле или таблицах СУБД. При сложности использования названных подходов, а также при первичной установке сервера дляопределения размера кэша можно воспользоваться одним из следующихэмпирических правил.A. Правило «пяти минут». Соотношение цен основной и дисковой памятитаково, что экономически целесообразно кэшировать данные, обращения ккоторым происходят более одного раза каждые пять минут. Для определенияразмера кэша нужно сначала на уровне всей системы сложить объемы всехданных, которые приложения предполагают использовать более часто, чемодин раз в пять минут. Дополнительно следует зарезервировать еще 5-10%от суммарного объема данных для хранения индексов, хранимых процедур идругой управляющей информации СУБД.
Правило широко используется приконфигурировании серверов баз данных, для которых точное определениеразмера кэша затруднительно.B. Правило «90/10». Исследования современных БД показывают, что90% всех обращений выполняются к 10% данных («горячие» данные). Болеетого, обращения к «горячим» данным, в свою очередь, тоже подчиняются правилу «90/10».
Таким образом, около 80% всех обращений к данным связаны сдоступом к примерно 1% данных. Отсюда следует, что для кэша требуетсяобъем основной памяти не менее 1% от «чистого» объема хранимых данных,не считая памяти под индексы и другую служебную информацию.Правило применимо для больших баз данных, когда 10% общего объемабазы данных принципиально невозможно или дорого разместить в кэше. Так,для скромных по сегодняшним меркам баз данных объемом 5 Гбайтов10% составляет 500 Мбайтов. Сконфигурировать машину класса Pentium стаким объемом кэша пока проблематично и дорого. Обеспечить кэш объемомв 1% всех данных и для очень больших баз данных - вполне реально.C. По числу пользователей.
Грубой оценкой требуемого объема основнойпамяти под кэш является величина, получающаяся при выделении от 50 до300 кбайтов на каждого пользователя. Правило целесообразно применять для254Часть 2. Проектирование и использование БДмногопользовательских систем, когда невозможно определить размер кэшадругим способом.Замечания.• Чрезмерное увеличение размера кэша обычно не дает существенногоэффекта. Более того, эффект может оказаться обратным: система станетработать медленнее. Причиной этого может быть лишение пользовательского приложения или сервера СУБД требуемой для нормальной работы основной памяти.• Выделение памяти под кэш может уменьшить размер виртуальной памяти, используемой операционной системой для буферизации операцийфайловой системы.• В системе должно обеспечиваться пространство для традиционного использования памяти. Так, в вычислительных системах под управлениемUNIX желательно иметь объем основной памяти не менее 16 Мбайтовдля операционной системы, 2 - 4 Мбайта — для ряда программ СУБД идостаточно места для размещения в памяти двоичных кодов приложения.
Объем двоичных кодов приложения составляет обычно 1 - 2 Мбайта, но иногда они могут достигать десятков Мбайтов. Поскольку операционная система обеспечивает разделение памяти между множествомпроцессов, достаточно зарезервировать пространство для одного приложения.• Для современных серверных систем существует также следующее эмпирическое правило: неразумно комплектовать машину памятью менеечем примерно по 64 Мбайтов на процессор. В противном случае в системе возникает интенсивная фрагментация памяти.Центральный процессор.
Потребление процессорных ресурсов в серверной системе сильно зависит от используемого приложения, СУБД, индивидуальных пользователей и от времени дня. Поэтому однозначно дать рекомендации по составу и мощности центрального процессора (ЦП) в общемслучае невозможно. Некоторые оценки по способностям используемых процессоров можно дать по результатам тестирования.Так, результаты теста ТРС-А для восьмипроцессорного SPARCserver 1000показывают, что он способен обрабатывать запросы от 4000 пользователей,или от 500 пользователей на процессор. Этот результат достигнут путем тщательной настройки ОС Solaris, СУБД Oracle и самого теста. Для большинства пользователей более реалистической верхней границей числа пользователей па процессор для транзакций типа ТРС-А возможно составит порядка100-200 пользователей на один процессор 50 МГц SuperSPARC.Дисковая система ввода/вывода.Как известно, любое обновление базыданных связано с обновлением индексов и с выполнением записи в журнал.Каждая из этих операций может вызывать последовательное и/или произвольное обращение к дисковой памяти.