Red Hat Enterprise Linux 4: Введение в системное администрирование | ||
---|---|---|
Назад | Глава 5. Управление хранилищем | Вперёд |
С характеристиками производительности жёстких дисков вы уже встречались в разделе 4.2.4 Жёсткие диски, в этом разделе этот вопрос будет рассмотрен подробнее. Для системных администраторов важно понимать, что, не имея как минимум поверхностных знаний о принципах работы жёстких дисков, можно неосмотрительно изменить конфигурацию компьютера так, что это может негативно повлиять на производительность.
Время, которое требуется жёсткому диску для ответа на запрос ввода/вывода и для его завершения зависит от двух факторов:
физических и механических ограничений жёсткого диска
создаваемой системой нагрузки.
Эти аспекты производительности подробно рассматриваются в следующих разделах.
Так как жёсткие диски являются электромеханическими устройствами, это накладывает на их скорость и производительность различные ограничения. Для выполнения каждого запроса ввода/вывода необходима совместная работа различных компонентов диска. Так как эти компоненты имеют свои характеристики производительности, общая производительность жёсткого диска определяется суммой производительности отдельных компонентов.
Однако электрические компоненты как минимум на порядок быстрее механических. Таким образом, наибольшее влияние на производительность диска оказывают механические компоненты.
Подсказка | |
---|---|
Самый эффективный способ увеличить производительность жёсткого диска — сократить число механических действий, насколько это возможно. |
Среднее время доступа типичного жёсткого диска приблизительно равно 8,5 миллисекунд. В следующих разделах рассматривается, откуда берётся это число, и показывается, как каждый компонент влияет на общую производительность жёсткого диска.
Во всех выпускаемых сегодня жёстких дисках встроены сложные компьютерные системы, управляющие их работой. Эти компьютерные системы выполняют следующие задачи:
взаимодействие с внешним миром через интерфейс жёсткого диска
управление работой остальных компонентов жёсткого диска и восстановление в случае различных ошибок, которые могут возникнуть
обработка низкоуровневых данных, считываемых или записываемых на носитель хранилища
И хотя в жёстких дисках используются довольно мощные микропроцессоры, они выполняют свои задачи в течение какого-то времени. В среднем это время составляет порядка 0,003 миллисекунд.
Головки чтения/записи работают только при вращении пластин, над которыми они «парят». Так как чтение и запись данных возможно только при перемещении носителя под головками, время, необходимое для того, чтобы нужный сектор полностью прошёл под головкой, в значительной мере определяет вклад, который вносит головка в общее время доступа. Для диска с 10 000 оборотов/мин и 700 секторами на дорожке это время в среднем составляет 0,0086 миллисекунд.
Так как пластины диска крутятся постоянно, маловероятно, что в момент получения запроса ввода/вывода пластина будет находиться в той точке, в которой сразу можно обратиться к нужному сектору. Следовательно, даже если все остальные компоненты диска готовы обратиться к этому сектору, они должны ждать, пока под головкой не окажется нужный сектор вращающейся пластины.
Вот почему в высокоскоростных дисках обычно пластины диска вращаются обычно с большей скоростью. Сегодня скорость 15 000 оборотов/мин. имеют самые скоростные диски, тогда как для дисков начального уровня считается достаточной скорость 5 400 оборотов/мин. В среднем для диска 10 000 оборотов/мин. задержка составляет около 3 миллисекунд.
Если выбрать из всех компонентов жёсткого диска один, который является его Ахиллесовой пятой, это будет механизм доступа. Объясняется это тем, что механизм доступа очень быстро и точно должен перемещаться на относительно большие расстояния. Кроме этого, механизм доступа перемещается неравномерно — он должен быстро ускоряться для перемещения к нужному цилиндру, а затем быстро останавливаться, чтобы не проскочить его. Мало того, механизм доступа должен быть крепким (чтобы противостоять силам, возникающим при быстром перемещении) и лёгким (чтобы его было легче ускорять/тормозить).
Одновременно достичь этих конфликтующих целей сложно и это объясняет тот факт, что на перемещение механизма доступа уходит больше времени, чем на работу других компонентов. Таким образом, в большей степени общая производительность жёсткого диска определяется временем перемещения механизма доступа, которое в среднем составляет порядка 5,5 миллисекунд.
Ещё один фактор, влияющий на производительность жёсткого диска — нагрузка этого диска. Нагрузка диска имеет свои характеристики, в частности:
Отношение объёма чтения к объёму записи
Число активных клиентов диска
Ограниченность области чтения/записи
Эти факторы рассматриваются подробно в следующих разделах.
Для среднего жёсткого диска, в котором данные хранятся на магнитном носителе, отношение числа операций чтения к число операций записи не имеет большого значения, так как и чтение, и запись выполняется одинаковое время [1]. Однако, в других технологиях хранения на выполнение чтения и записи требуется разное время [2].
Вследствие этого, устройства, у которых скорость записи ниже скорости чтения (например), способны выполнять меньше операций записи, чем чтения. Также можно сказать, что на операцию записи устройство расходует больше потенциала обработки запросов, чем на операцию чтения.
Нагрузка жёсткого диска, который обрабатывает запросы ввода/вывода, поступающие от нескольких источников, отличается от нагрузки жёсткого диска с всего лишь одним источником запросов. Основная причина этого состоит в том, что несколько клиентов диска могут создать большую нагрузку, чем один единственный клиент.
Объясняется это тем, что прежде чем клиент сможет послать очередной запрос, он должен выполнить некоторые действия. Помимо прочего, чтобы запрос мог быть выполнен, клиент должен его сформировать, а так как на это формирование уходит некоторое время, нагрузка, которую может создать один клиент, имеет верхний предел, и чтобы её увеличить, нужен более быстрый процессор. Этот предел становится ещё более явным, если клиент обращается к диску, обрабатывая данные, вводимые человеком.
Однако, несколько клиентов могут создать большие нагрузки. Пока мощности процессора достаточно для вычислений, необходимых для формирования запросов к диску, увеличение числа клиентов приводит к увеличению общей нагрузки.
Однако есть и ещё один фактор, оказывающий влияние на общую нагрузку. Он обсуждается в следующем разделе.
Хотя этот фактор влияет на производительность жёсткого диска не только в окружении со многими клиентами, но в таком окружении он обычно проявляется в большей степени. С точки зрения производительности важно, находятся ли запрашиваемые данные физически рядом с данными, запрошенными до этого, или далеко от них.
Почему это имеет значение, становится понятно, если вспомнить электромеханическое устройство жёсткого диска. Самым медленным компонентом любого жёсткого диска является механизм доступа. Таким образом, если для обращения к данным, указанным в поступающих запросах, перемещать механизм доступа не нужно, жёсткий диск сможет выполнить гораздо больше запросов, чем если запрашиваемые данные будут разбросаны по всему диску и для обращения к ним потребуется активно перемещать механизм доступа.
Это можно проиллюстрировать с помощью характеристик производительности жёсткого диска. В число этих характеристик обычно входит время перемещения на соседний цилиндр (когда механизм доступа перемещается на очень маленькое расстояние — только до следующего цилиндра), а время перемещения по всему диску (когда механизм доступа перемещается от самого первого цилиндра до самого последнего). Например, высокопроизводительный жёсткий диск имеет следующие характеристики:
[1] | На самом деле это не совсем так. Во всёх жёстких дисках есть какой-то объём интегрированной кэш-памяти, позволяющей увеличить скорость чтения. Однако, любой запрос на чтение данных может быть в конечном счёте удовлетворён только, когда данные физически считаются с носителя. Это значит, что хотя кэш может способствовать некоторому увеличению быстродействия, он никогда не сможет полностью исключить время, требуемое для физического чтения данных с носителя. |
[2] | Это касается некоторых оптических дисков и объясняется физическими ограничениями технологий, применяемых при реализации оптических хранилищ данных. |