Производительность Хранилищ данных: проблемы и способы решения

Производительность Хранилищ данных: проблемы и способы решения

Постепенно перед каждым руководителем встает вопрос о необходимости качественного обслуживания компьютеров, оргтехники, телефонии и много другого. Первое, что приходит в голову, это нанять для компьютерного обслуживания штатного специалиста. Компьютерные услуги сейчас предлагают многие, но как найти мастера на все руки? Ведь чаще всего подобные специалисты имеют узкую специализацию, как-то: программное обеспечение, компьютерные сети или техническое обслуживание компьютеров. Да и как можно быть уверенным в профессионализме такого сотрудника, если сам с трудом представляешь, чем он, собственно говоря, занимается?

Как оценить и измерить производительность Хранилища данных

Сложности и взаимозависимости современной IT-инфраструктуры все время создают проблемы для поддержки приемлемой и устойчивой производительности в среде Хранилища данных. Выполнение процессов в Хранилище (таких как подготовка отчетов, аналитика, операции извлечения, преобразования и загрузки (extract, transform and load,сокр. ETL), обработка запросов и т.д), которое вначале осуществляется в оптимальном режиме, со временем может ухудшиться. Влияние выполнения таких операций на среду Хранилища данных может не сразу стать заметным из-за скорости происходящих изменений или достаточно случайного возникновения подобных проблем. Такие изменения в среде Хранилища данных могут вызываться разнообразными факторами, прямо или косвенно связанными с самим Хранилищем.

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

Факторы среды (Environment Factors)

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

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

На производительность Хранилища способны влиять и иные операции баз данных. Если другие базы данных находятся на том же сервере, что и Хранилище, то их работа потребует определенных ресурсов сервера. Для того чтобы обеспечить оптимальную производительность как приложений по обработке транзакций, так и Хранилища, они должны размещаться на разных серверах. Если необходимо, чтобы базы данных транзакций и Хранилища находились на одном сервере, то это должны быть разные экземпляры баз данных для того, чтобы можно было использовать СУБД и параметры настройки баз данных, относящиеся к каждой из них отдельно. В зависимости от изменений, связанных с ростом и использованием Хранилища, экземпляры СУБД и баз данных могут потребовать дополнительной настройки для поддержки их производительности.

Еще один потенциальный фактор, который может влиять на эффективность работы среды Хранилища данных, - создание резервных копий журнальных файлов и баз данных. Для снижения этого воздействия подобные операции должны выполняться в периоды минимальных нагрузок на Хранилище.

Факторы, связанные с совместной инфраструктурой (Shared Infrastructure Factors)

Во многих Хранилищах данных используются различные возможности современных совместных устройств хранения. Подобные устройства позволяют поддерживать увеличение объема данных, доступных сразу для всех серверов сети, что исключает необходимость наличия и поддержки специальных дисков для отдельных серверов. Ресурсы сервера, обслуживающие приложения и базы данных, таким образом освобождаются от операций, связанных с хранением данных, поскольку последние не находятся на сервере. Примерами таких совместных устройств хранения являются устройство хранения данных, подключаемое к сети (Network attached storage,сокр. NAS), и архитектура "сервер-хранилище данных" 1 (storage area network,сокр. SAN). Хотя подобные возможности хранения данных дают общие преимущества в плане поддержки и роста объема данных в масштабах всей корпорации, они могут влиять на производительность Хранилища, причем не всегда очевидным образом. Поскольку сервер совместных устройств хранения является общим для всей корпорации, операции обработки различных серверов приложений могут обращаться к тому же серверу хранения, что и Хранилище данных. В периоды интенсивной обработки данных для множества приложений совместный сервер хранения может достигать таких точек насыщения, которые способны негативно влиять на производительность обработки данных для Хранилища и других приложений. С точки зрения Хранилища такое снижение производительности будет невозможно заметить или измерить на серверах Хранилища, поскольку оно использует совместные устройства хранения. Снижение производительности может быть единичным и иметь место только во время определенных периодов, когда суммарные запросы приложений на обработку данных одновременно поступают на сервер совместных устройств хранения.

В Хранилищах, которые работают с несколькими центрами данных для повышения доступности информации и выравнивания нагрузки обработки приложений, инфраструктура взаимных связей (interconnect infrastructure), иногда именуемая просто структурой (fabric), может вызывать проблемы с производительностью Хранилища, которые бывает нелегко обнаружить. Нарушения в средствах передачи данных и/или компонентах взаимных связей могут влиять на операции обработки данных в Хранилище, снижая его производительность. В этом случае причины проблем с производительностью Хранилища данных также будет нелегко обнаружить, поскольку своим возникновением они обязаны использованию совместной корпоративной инфраструктуры.

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

Полное представление о среде, в которой работает Хранилище данных

Обычно процессы ETL работают с заранее определенными временными интервалами, которые зависят от периодов обновления информации в Хранилище данных (например, режим, близкий к реальному времени, в течение дня, ежедневно, еженедельно и т. д.). Если пользователи имеют доступ к Хранилищу во время осуществления процессов ETL, то важно знать, как работа этих процессов отражается на производительности обработки запросов пользователей. Важно также иметь представление о том, как другие операции в рамках общей инфраструктуры влияют на производительность Хранилища данных. Помимо ETL, негативное влияние на эффективность работы среды Хранилища могут оказывать такие процессы, как создание резервных копий баз данных и систем файлов, операции, связанные с безопасностью системы, обработка больших пакетных заданий, реорганизация баз данных и обновление статистической информации и другие процессы, требующие значительных системных ресурсов. Поэтому очень важно знать время выполнения этих ресурсоемких операций, чтобы адекватно оценивать производительность Хранилища. Здесь может помочь детальное расписание, в котором указано время осуществления всех операций. Если вся инфраструктура Хранилища данных или ее отдельные части также работают с другими приложениями, не относящимися к Хранилищу, то необходимо иметь представление о потребностях этих приложений в ресурсах и о расписании их работы. Это относится и к инфраструктуре, использующей совместные устройства хранения (NAS, SAN и др.), поскольку их отдельные компоненты могут являться общими и для других приложений. Ограниченность ресурсов в среде совместных устройств хранения бывает нелегко диагностировать в среде функционирования Хранилища данных. Успех, который Хранилища имели в обеспечении бизнеса информацией и знаниями, привел к тому, что сегодня они должны быть доступными для пользователей круглосуточно семь дней в неделю. А это обязывает менеджеров Хранилищ данных и общей инфраструктуры обеспечивать необходимую поддержку и настройку Хранилищ без ограничений их доступности и производительности.

Профилактические проверки

Существует несколько профилактических операций наблюдения, которые необходимо осуществлять в среде работы Хранилища данных для того, чтобы избежать общих нарушений, которые могут влиять на производительность и доступность Хранилища. Области, в которых следует проводить подобные проверки, включают системы файлов, базы данных, сектора временного хранения данных, табличные пространства баз данных, журнальные файлы и архивы. Также необходимо оценивать загруженность центрального процессора и памяти, время ожидания ввода-вывода, скорость передачи данных в каналах сетевой связи, скорость буферной памяти (т.е. скорость, с которой данные передаются из памяти на диск) и т.д. В зависимости от размера, избыточности, способности восстанавливаться после отказа, общего распределения и гибкости среды Хранилища данных такой мониторинг может потребоваться на многих уровнях и серверах инфраструктуры. Менеджер Хранилища данных должен иметь полное представление об этих операциях мониторинга, используемых инструментах и осуществляемых измерениях, а также о пороговых значениях, при которых в инфраструктуре генерируются предупреждения и предпринимаются профилактические действия. Все это позволит ему лучше понимать план предпринимаемых действий и поможет согласовать ожидания пользователей с возможностями системы.

Проверки инфраструктуры

Существует несколько достаточно простых тестов, которые можно проводить при выявлении скрытых или случайных проблем производительности в среде Хранилища данных. Эти тесты предназначены для выявления тех проблемных областей за пределами приложений Хранилища, которые могут указывать на сложности в функционировании инфраструктуры. Можно написать простые скрипты или программы для измерения времени чтения и записи файлов (например, запись и чтение файла размером 2 гигабайта), времени выполнения запросов SQL (в приложениях и на сервере базы данных, если это имеет место) или времени соединения с СУБД. Данные показатели могут измеряться раз в несколько минут круглосуточно на протяжении всех дней в неделю. При этом все значительные отклонения от желательного времени выполнения, неприемлемые для группы поддержки инфраструктуры и пользователей, должны быть тщательно изучены и поняты в аспекте их влияния на среду Хранилища данных. Например, умеренно сложный SQL-оператор, выполнение которого в Хранилище обычно занимает одну минуту, дает некоторый разброс производительности при измерении раз в несколько минут на протяжении недели. При этом необходимо понять, выходят ли полученные отклонения за ожидаемые пределы, и определить, какие именно операции обработки и/или компоненты инфраструктуры вызывают данные отклонения.

Заключение

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

Публикации

Майкл Дженнинз (Michael Jennings). Производительность Хранилищ данных: проблемы и способы решения (Performance Impacts on the Data Warehouse Environment). Части 1 и 2.


1Высокоскоростные выделенные каналы связи с системой хранения данных (прим. переводчика).