Повышение производительности системы




Рекомендации по уменьшению времени обслуживания заявок ресурсами системы. Уменьшение времени обслуживания заявок ресурсами системы можно обеспечить использованием более совершенных технических средств. Это можно достичь за счет уменьшения времени передачи данных по шине или каналу связи (рекомендуется использовать высокоскоростные LAN-сети (по крайней мере, для объединения высокоскоростных серверов), процессорного времени и времени обмена с жесткими дисками (например, серверы фирм Sun Microsystems и Hewlett-Packard).

Рекомендации, направленные на снижение интенсивности потоков заявок к ресурсам. Эти рекомендации связаны с уменьшением нагрузки l. на ресурсы системы, т.е. со стремлением уменьшить «наполнение стакана» (см. рис. 14.1).

 

Рис. 14.2. Использование хранимых процедур для уменьшения нагрузки на шину:

а – хранимые процедуры не используются; б – хранимые процедуры используются; l1 + l2 + l3 – поток SQL-запросов к серверу СУБД, b1 + b2 + b3 – поток результатов выполнения запросов

 

1. Уменьшение интенсивности обращения к шине или каналу связи:

а) основные рекомендации связаны с использованием хранимых процедур и серверов приложений (рис. 14.2). Если предположить, что на вход хранимой процедуры передаются параметры первого оператора SELECT, a возвращаются результаты выполнения последнего предложения SELECT, то поток передаваемых данных уменьшается до l1+b3;

б) следует осмотрительно использовать копии таблиц и их частей, так как тиражирование данных вызывает дополнительную нагрузку на сеть;

в) поток данных на сеть можно снизить и системными средствами:

• рекомендуется использовать виртуальные сети на коммутаторах;

• следует рационально выбирать размер окна передачи данных по сети (число пакетов, после передачи которых принимающая станция посылает квитанцию о результатах передачи). При размере окна N = 1 трафик (число пакетов в единицу времени) удваивается. При увеличении окна до N = k
поток данных при надежной передаче уменьшается в 2 k/ (k + 1) раз;

• для маршрутизации пакетов следует применять новые маршрутизаторы (роутеры), использующие протоколы NLSP и OSPF. В старых маршрутизаторах применяется протокол RIP, в соответствии с которым каждый роутер посылает соседним маршрутизаторам RIP-пакеты через каждую минуту. Роутеры на базе NLSP- и OSPF-протоколов посылают технологические пакеты при возникновении определенных событий: при включении или выключении сервера, при выходе из строя канала связи и т.д.;

• при передаче данных рекомендуется выбирать максимальный размер пакета (для Ethernet он равен 1500 байтам). Для относительно надежных каналов это позволит снизить трафик сети.

2. Уменьшение нагрузки на процессор и внешнюю память сервера. Следует отметить, что эти нагрузки часто являются взаимосвязанными – уменьшение интенсивности использования процессора приводит к сокращению нагрузки на внешнюю память. В этом случае можно говорить о нагрузке на сервер. Здесь можно предложить следующие решения:

а) при наличии скоростной надежной магистрали целесообразно использовать слабо связанные кластеры серверов (рис. 14.3). Уменьшение нагрузки на сервер кластера достигается за счет того, что подзапросы (SQL-операции), получаемые в результате оптимизации запроса, выполняются на меньшем объеме данных. Конечно, в этом случае увеличивается нагрузка на шину сети, связанная с передачей подзапросов. Но влияние кластера на сеть можно устранить, выделив серверы кластера в отдельный сегмент и подключив его к порту коммутатора. Кластеры не целесообразно использовать для медленных и ненадежных каналов связей (WAN-сетей);

 

Рис. 14.3. Уменьшение нагрузки на процессор и внешнюю память при использовании кластера серверов:

а – нагрузка без использования кластера; б – нагрузка с использованием кластера

б) учет особенностей выполнения SQL-операторов позволяет существенно уменьшить нагрузку на сервер. Самой ресурсоемкой операцией является операция соединения таблиц, поэтому рекомендуется по возможности не использовать объединение таблиц (а.номер = в.номер) и вложенных подзапросов (...IN (SELECT номер FROM... WHERE...)). Если такие запросы имеются, то следует убедиться, что они выполняются не очень часто;

в) по возможности следует использовать хеширование по ключу таблицы. Часто в приложениях выполняют поиск по ключу таблицы (например, id = 4). При этом заранее известно, что будет найдено не более одной записи. Если хеширование не используется, то сервер СУБД выполняет поиск с использованием индекса.

3. Уменьшение нагрузки на внешнюю память:

а) рекомендуется использовать большой кэш-буфер. Более 50 % запросов к данным выполняются по данным из кэш-буфера сервера СУБД. При меньшем проценте запросов следует добавить новые блоки оперативной памяти и увеличить размер кэш-буфера;

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

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: