Настройка ввода/вывода

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

Как было показано ранее в главе 11 в разделе "Фрагментация", XPS поддерживает фрагментацию табличных данных. Когда сканируется таблица, каждому фрагменту назначается отдельный поток сканирования. Аккуратное размещение данных может обеспечить эффективное использование подсистемы ввода/вывода. Например, если фрагменты размещены на нескольких дисках, то информация таблиц может быть восстановлена с каждого из них в параллельном режиме.

Параллелизм ввода/вывода

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

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

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

Другой важный фактор, который также следует учитывать - это ожидаемое количество активных пользователей. Многочисленные запросы, которые приводят к одновременному сканированию различных таблиц большого объема, могут также создавать нагрузку на подсистему ввода/вывода. Использование узких и широких полос расслоения представляет собой в общем случае лучшую стратегию достижения сбалансированного ввода/вывода дисковой подсистемы. Для получения дополнительной информации по этому вопросу обратитесь к разделу "Правильный и неправильный способы расслоения" в главе 17.

Ввод/вывод опережающего чтения
Уровни изоляции
Настройка буферов протоколирования
Оптимизация производительности загрузки данных
Процессы загрузки данных

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


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