Поделиться через


Производительность диска может быть медленнее, чем ожидалось при использовании нескольких дисков

В этой статье описывается решение проблемы, в которой производительность диска может быть медленнее, чем ожидалось. Эта проблема может возникать при использовании аппаратного или программного RAID-массива.

Исходный номер базы знаний: 929491

Симптомы

Производительность диска может быть медленнее, чем ожидалось при использовании нескольких дисков в Windows. Например, производительность может замедляться при использовании аппаратного избыточного массива независимых дисков (RAID) или программного RAID.

Причина

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

Кластер томов можно создать через границу единицы полосы вместо границы блока полосы. Это связано с тем, что Windows использует коэффициент 512 байт для создания кластеров томов. Это поведение приводит к неправильной секции. Доступ к двум группам дисков осуществляется при обновлении одного кластера томов в несогласованном разделе.

Windows создает секции, основанные на предопределенном количестве секторов. Начальное расположение для секции диска в Windows — это 32-й или 64-й сектор в зависимости от информации, представленной операционной системе контроллером массового хранилища.

Примечание.

Секции дисков всегда резервирует первый сектор секции для кода и сведения о секциях, например количество секторов и начальный сектор. Фактическая часть данных секции начинается со второго сектора секции.

Разрешение

Чтобы устранить эту проблему, используйте средство Diskpart.exe для создания секции диска и указания начального смещения 2048 секторов (1 мегабайт). Начальное смещение 2048 секторов охватывает большинство сценариев размера единицы полосы.

Примечание.

Windows Server 2003 с пакетом обновления 1 (SP1) представила возможность настройки выравнивания секций Diskpart. Если у вас нет доступа к обновленной версии Diskpart, diskpar (Обратите внимание, что в имени этой служебной программы нет окончательного значения t).

Чтобы убедиться, что существующий раздел выровнен, выполните вычисление, описанное в разделе "Дополнительные сведения".

Чтобы выровнять секцию диска на RAID с смещением в 2048 секторе, выполните следующие действия.

  1. В командной строке введите diskpart и нажмите клавишу ВВОД.

  2. Введите следующие команды в командной строке DISKPART и нажмите клавишу ВВОД:

    list disk
    

    Вы получаете выходные данные, похожие на следующее:

    Disk ### Status Size Free Dyn Gpt  
    -------- ---------- ------- ------- --- ---  
    Disk 0 Online 37 GB 8033 KB  
    Disk 1 Online 17 GB 8033 KB
    Disk 2 Online 17 GB 0 B  
    Disk 3 Online 17 GB 148 MB *  
    Disk 4 Online 17 GB 8 MB *  
    Disk 5 Online 17 GB 8 MB *  
    Disk 6 Online 17 GB 8 MB *  
    Disk 7 Online 17 GB 8 MB *  
    Disk 8 Online 17 GB 435 KB *  
    Disk 9 Online 17 GB 8 MB *  
    Disk 10 Online 17 GB 8033 KB
    

    Эта list disk команда содержит сводные сведения о каждом диске, установленном на компьютере. Диск с звездочкой (*) имеет текущий фокус. Перечислены только фиксированные диски и съемные диски. Фиксированные диски включают встроенную электронику устройства [IDE] и диски SCSI. Съемные диски включают 1394 и USB-диски.

    select disk
    

    Используйте команду выбора диска, чтобы задать фокус на диск с указанным номером диска. Если номер диска не указан, команда отображает текущий диск, который находится в фокусе.

    create partition primary align=1024
    

    Примечание.

    • При вводе этой команды может появиться сообщение, похожее на следующее:DiskPart, успешное создание указанной секции.
    • Параметр align= number обычно используется вместе с аппаратными номерами логических единиц RAID (LUN) для повышения производительности, если логические единицы не выровнены. Этот параметр выравнивает основную секцию, которая не выравнивается в начале диска, а затем округляет смещение до ближайшей границы выравнивания.
    • число килобайтов (КБ) с начала диска до ближайшей границы выравнивания. Команда завершается ошибкой, если основная секция не находится в начале диска. Если вы используете команду вместе с параметром offset = number , смещение находится в первом доступном цилиндре на диске.
    exit
    
  3. Нажмите кнопку "Пуск", нажмите кнопку "Выполнить", введите diskmgmt.msc и нажмите кнопку "ОК".

  4. В оснастке консоли управления дисками (MMC) найдите только что созданную секцию и назначьте ей букву диска.

  5. Используйте файловую систему NTFS для форматирования новой секции и назначения размера кластера.

    Примечание.

    Эта примерная процедура предназначена для одной секции для каждой группы RAID.

Дополнительные сведения

Чтобы убедиться, что существующая секция выровнена, разделите размер единицы полосы на начальное смещение группы дисков RAID. Используйте следующий синтаксис:
(смещение секции) * (размер сектора диска)/ (размер единицы полосы)

Примечание.

Размер сектора диска и размер единицы полосы должен быть в байтах или в килобайтах (КБ).

Пример вычислений выравнивания в байтах для размера единицы полосы в 256 КБ:
(63 * 512) / 262144 = 0,123046875
(64 * 512) / 262144 = 0,125
(128 * 512) / 262144 = 0,25
(256 * 512) / 262144 = 0,5
(512 * 512) / 262144 = 1

Пример вычислений выравнивания в килобайтах для размера единицы полосы в 256 КБ:
(63 *.5) / 256 = 0,123046875
(64 *.5) / 256 = 0,125
(128 *.5) / 256 = 0,25
(256 *.5) / 256 = 0,5
(512 *.5) / 256 = 1

В этих примерах показано, что секция не выровнена правильно для размера единицы полосы 256 КБ до создания секции с помощью смещения 512 секторов (512 байт на сектор).

Примечание.

Количество дисков в группе массивов не влияет на выравнивание секций. Факторы, влияющие на выравнивание секций, — это размер единицы полосы и начальная смещение секции.

Чтобы найти начальное смещение для данной секции, выполните следующие действия.

  1. Нажмите кнопку "Пуск", нажмите кнопку "Запустить", введите cmd и нажмите кнопку "ОК".

  2. Введите следующую команду и нажмите клавишу ВВОД:

    wmic partition get BlockSize, StartingOffset, Name, Index
    

    После выполнения команды вы получите выходные данные, аналогичные следующим:

    BlockSize Index Name StartingOffset  
    512 0 Disk #1, Partition #0 32256  
    512 0 Disk #2, Partition #0 32256  
    512 0 Disk #3, Partition #0 32256  
    512 0 Disk #4, Partition #0 1048576  
    512 0 Disk #0, Partition #0 32256  
    512 1 Disk #0, Partition #1 41126400
    
  3. Обратите внимание на значение BlockSize и StartingOffset для каждой заданной секции. Значение индекса, возвращаемое этой командой, указывает, является ли секция первой секцией, второй секцией или другими секциями для заданного диска. Например, индекс секции 0 — это первая секция на определенном диске.

  4. Чтобы определить, сколько секторов дисков начинается с начала диска, разделите значение для ЗапускаOffset по значению BlockSize. В примере на шаге 2 следующее вычисление дает начальную смещение секции в секторах:

    32256 / 512 = 63