Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.kge.msu.ru/techaid/diskopt.htm
Дата изменения: Wed Mar 5 23:59:53 2003 Дата индексирования: Mon Oct 1 20:21:24 2012 Кодировка: Windows-1251 |
Интерфейс IDE Аппаратное подключение устройств Подавляющее большинство современных компьютеров имеют дисковую систему, построенную на основе интерфейса IDE (ATAPI). Традиционная материнская плата имеет два канала IDE-контроллера - первичный (primary) и вторичный (secondary), каждый из которых представляет собой, по сути, отдельный контроллер. Каждый канал имеет собственный разъем на материнской плате и отдельный шлейф, к которому можно подключить один или два IDE устройства. Одно из них будет работать в режиме master, а другой - в режиме slave, и эти режимы устанавливаются перемычками на накопителе или приводе. Я не открою каких-либо новых фактов - все, что я скажу в данном разделе, уже сказано в различных документах и FAQ-ах. Несмотря на это, вопрос о том, что и куда подключать, встречается достаточно часто, и, поскольку от этого напрямую зависит работа дисковой системы, я попытаюсь собрать воедино все, что можно сказать на эту тему. Сразу добавлю, что описывать быстродействие систем на основе SCSI в этой статье не представляется возможным - в основном, из-за необъятности этой темы и наличия огромного числа частностей. Как работают два устройства, размещенные на одном канале (шлейфе)? К сожалению, сложившийся протокол работы с IDE устройствами не позволяет двум накопителям, работающим на одном канале, работать полностью отдельно друг от друга. Дело даже не в том, что они используют общий шлейф (кабель) для подсоединения к контроллеру. Проблема стоит несколько острее - сам протокол передачи данных (устройство контроллера) и режим работы драйвера, используемый в подавляющем числе IDE систем, не позволяет использовать одно из устройств, пока другое устройство не выполнило данную ему команду. На практике это выливается в очень неприятную вещь: например, винчестер получил команду считать сектор. Часто он не может сделать этого сразу - например, потому, что головки жесткого диска находятся в другой области, и для чтения сектора придется совершать механические операции. Во время поиска нужных данных - порядка десятка миллисекунд - устройство просто молчит, выполняя команду контроллера. К огромному сожалению, во время этого периода второе IDE устройство, расположенное на том же контроллере (канале), просто недоступно. Проблема двух жестких дисков, расположенных на одном IDE контроллере, еще не так страшна, потому что жесткий диск в любом случае способен выполнить данные ему команды достаточно быстро. В случае же, например, с приводом CD-ROM, проблема может встать гораздо серьезнее. Когда CD-ROM осуществляет поиск дорожки (порядка сотни миллисекунд, в редких случаях - и больше), выполняет какие-то свои, например калибровочные, манипуляции, или даже просто испытывает затруднения при чтении сектора (до десятка (!) секунд), второе устройство, работающее на том же канале, просто недоступно. Вывод, к сожалению, приходится делать такой: если это возможно, размещайте устройства, с которыми будет осуществляться одновременная работа, на разных контроллерах. Если у вас всего два устройства - вы просто поставите их на разные контроллеры, и каждое из них будет работать отдельно от другого, а, значит, оптимальным образом. А если устройств больше?
К вопросу о том, как размещать несколько винчестеров для создания оптимальной по быстродействию системы, и какую пользу можно получить от нескольких жестких дисков, мы еще вернемся. Slave или master? Два устройства, размещенные на одном шлейфе, тем или иным способом сотрудничают для обеспечения своей работы. Каждое IDE-устройство имеет переключатель slave или master, и два устройства, работающие на одном шлейфе, должны работать в разных режимах. Имеет ли практическое значение, какое из устройств будет slave, а какое - master? В настоящее время можно достаточно уверенно сказать: это не имеет значения. Работа протокола IDE в том виде, к которому он пришел к настоящему времени, практически не зависит от того, какое из устройств будет slave, а какое - master. Устанавливайте перемычки так, как это будет логичнее с точки зрения операционной системы (по умолчанию в большинстве систем буквы назначаются дискам в том порядке, в котором они физически присутствуют в системе - т.е. сначала пойдет master, потом - slave). Единственное, что все-таки можно сказать по поводу аппаратного аспекта - если у вас есть очень старый жесткий диск или CD-ROM (скажем, более чем пятилетней давности), постарайтесь не ставить его как master к более современному устройству. Это вряд ли принесет потерю быстродействия, но может дать принципиальные проблемы совместимости, из-за которых второе устройство (slave), или даже оба накопителя, будут работать некорректно или не будут работать вообще. Еще одно замечание - если на одном контроллере стоят два привода, способных читать CD, то загрузится со второго (slave) привода у вас не получится. Последняя проблема уже решена в последних материнских платах (в BIOS AWARD 6.0, например, можно выбрать, какое именно устройство будет считаться CD-приводом при выборе последовательности загрузки), однако пока таких плат далеко не большинство. Если у вас два CD на одном контроллере (например, CD и CD-RW), и вы хотите получить возможность загружаться именно с CD привода, желательно поставить его как master - это сработает независимо от платы и версии BIOS. Какое устройство подключать к среднему разъему шлейфа, а какое - к крайнему? Это также не имеет решающего значения. Да, какие-то электромагнитные моменты делают предпочтительным ту или иную комбинацию, но на практике гораздо более важен другой аспект: просто соединяйте устройства так, чтобы кабель проходил по возможности свободно, не изгибался и не натягивался. Лишние механические деформации и напряжение шлейфа могут привести к тому, что в каком-то месте (например, в разъеме) получится слабый контакт или (частичное) повреждение проводов самого шлейфа, а это может привести к потере данных или ненадежной работе накопителей. Еще одна неприятная штука - если шлейф частично выйдет из разъема в процессе работы системы - также может принести кучу неприятных последствий, вплоть до физической поломки (это, впрочем, вряд ли). Поэтому совет будет простой - соединяйте устройства так, чтобы не напрягать кабель. Учесть другие факторы все равно вряд ли получится. Драйвера Bus Mastering Второй важный аспект работы дисковой системы на основе контроллера IDE - драйвер контроллера. От того, как драйвер, а значит и операционная система, будет работать с устройствами и контроллером, в каком режиме будет осуществляться обмен данными, сильно зависит общее быстродействие системы. В настоящее время существует две стратегии работы дисков, контроллера и драйвера: "стандартный" для старых устройств режим, в котором обязаны работать все IDE накопители - режим PIO (Programmed Input/Output), в котором для передачи данных между накопителем и системой используется центральный процессор. Данный режим работает на всех IDE-контроллерах, и является, собственно, изначальным режимом работы, регламентированном в самом первом стандарте. Тем не менее, в последние несколько лет подавляющее большинство контроллеров и устройств имеют альтернативный режим работы - так называемый режим Bus Mastering (DMA/UDMA), в котором управление передачей данных ведется самим контроллером, без участия процессора. Этот режим не только освобождает процессор, что очень важно в многозадачных системах, но еще и снимает ограничение на скорость передачи данных, накладываемое процессором и программным обеспечением. В системе Windows NT4.0 и Windows 2000, к примеру, драйвер, работающий в режиме PIO, на мой машине (Celeron 333A, чипсет BX) не может обеспечить скорость передачи данных больше 5 Мбайт/с с любого из трех современных дисков (Quantum 10 Гбайт, Seagate 6 Гбайт и Seagate Barracuda 30 Гбайт). В режиме Bus Mastering, напротив, Seagate Barracuda, например, выдает положенные ему 10 - 15 Мбайт/c, что почти в три раза (!) быстрее, да и остальные диски доходят до своего теоретического предела в 7 - 10 Мбайт/с. Прибавьте к этому то, что для работы в обычном режиме загрузка процессора (лично у меня) составляет 100%, а в режиме Bus Mastering - около 20%, и вы поймете, почему ваша система просто обязана работать в этом режиме. К счастью, все системы (материнские платы), выпущенные со времен Pentium, а уж тем более в настоящее время, без каких либо проблем поддерживают Bus Mastering (далее - BM). Единственная проблема, которая остается - использовать именно этот режим работы аппаратуры. К сожалению, здесь и по сей день есть некоторые подводные камни. Windows 98/Windows ME Современные компьютеры на основе этих систем, в подавляющем большинстве случаев, уже имеют драйвера, способные работать в режиме BM - особенно это относится к Windows ME. Убедится в этом можно следующим образом - пойти в панель управления, пункт "система", и в менеджере устройств почитать название контроллера жестких дисков. Если у вас материнская плата на чипсете Intel, и в названии есть слова "Bus Master" или, иногда, аналог по-русски ("управление шиной" или что-то в этом роде) - значит, нужные драйвера уже установлены. Пользователям современных (Pentium и выше) систем на основе чипсетов VIA можно быть спокойными - если у вас стоит драйвер с упоминанием VIA, а не стандартный драйвер IDE, то BM вам обеспечено. Если же у вас все-таки установлен только стандартный драйвер IDE-контроллера, то вам, скорее всего, нужно поставить более новые драйвера. Пользователям Windows 95, к сожалению, придется искать драйвера - стандартных драйверов BM в этой системе нет. Все, что теперь осталось сделать - это убедится в том, что все ваши устройства работают в этом режиме. Для этого в том же самом менеджере устройств вам нужно пройтись по всем жестким дискам и приводам CD/DVD, и поставить для них режим "DMA" в закладке "Параметры" ("Settings"). Разные системы имеют разные параметры по умолчанию, и, возможно, несколько ваших устройств по-прежнему продолжат работать в режиме PIO. Стоит обратить внимание, впрочем, на то, что некоторые устройства (особенно старые приводы CD или CD-R[W]) могут не работать в режиме DMA, или же работать не совсем корректно. Иногда случается, например, так, что привод CD в DMA режиме перестает воспроизводить VideoCD или копировать аудиоданные. Мне также встречались случаи, когда привод CD-RW вообще переставал работать в DMA-режиме. Возьмите это на заметку - если что-то перестало работать так, как работало раньше, вам, к сожалению, придется отказаться от использования DMA на этом устройстве. Windows 2000 Эта система в подавляющем большинстве случаев уже имеет драйвера Bus Mastering, и даже использует их. Все, что можно сделать - это попытаться убедится в том, что все устройства используют этот режим доступа: дело в том, что приводы сменных накопителей (CD, например) часто по умолчанию, в процессе инсталляции системы, ставятся на всякий случай в режим PIO, что не всегда оправдано. Вы должны отправиться в менеджер устройств (его можно найти в дереве, которое запускается, к примеру, через нажатие правой кнопкой мыши на "мой компьютер", пункт manage), найти там IDE ATA/ATAPI контроллеры, и проверить установки для обоих каналов контроллера (Primary/Secondary IDE channel). В закладке Advanced Settings вы сможете как проконтролировать текущий режим работы устройства, так и поставить нужный вам режим - DMA if available (DMA, если возможно), если он вдруг не установлен. Windows NT4.0 Пользователям этой ОС в подавляющем большинстве случаев придется совершить более активные действия для того, чтобы получить работу в режиме BM. Стандартные драйвера систем NT с пакетом обновления SP3 и выше уже имеют поддержку BM для контроллеров Intel PIIX3 и выше (применяются в чипсетах линии i430/i440), но, к сожалению, в подавляющем числе систем не могут ее самостоятельно использовать из-за неудачной процедуры автоматического определения этого режима. Определить, работает ли BM в вашей системе или нет, вам поможет, например, программа ConfigNT, которая покажет текущие режимы работы устройств. Если вы увидите, что BM на вашем контроллере не работает, у вас есть два варианта действий - либо включить этот режим насильно (прямо в той же программе - только для чипсетов Intel i430/i440, очень, впрочем, распространенных), либо поставить драйвера с поддержкой BM. Пользователям остальных чипсетов (например, от той же VIA, или новой линейки Intel i8xx) придется установить специальные драйвера с поддержкой Bus Mastering.
Другие ОС К счастью, другие современные операционные системы (Linux, FreeBSD, BeOS и т.д.) имеют более внятную поддержку Bus Mastering. Все эти системы, а вернее, их стандартные драйвера (последних версий систем), имеют поддержку Bus Mastering для практически всех контроллеров Intel (а некоторые - и для VIA), и сами используют все устройства в наиболее оптимальном режиме. Пользователи систем Unix, например, смогут убедиться в этом, проследив за сообщениями, которые выдает драйвер при загрузке (если, конечно, их система выдает эту информацию - Unix можно сконфигурировать как угодно). BeOS включает данный режим по умолчанию, так что иногда даже приходится решать противоположную задачу: выключать его вручную (если возникают проблемы с загрузкой системы). С IDE-контроллерами (материнскими платами) других производителей, отличных от Intel и VIA, дело обстоит несколько хуже, а иногда, к огромному сожалению, и вообще никак - но ответы на эти вопросы вы сможете получить только самостоятельно изучив вашу ситуацию. Достаточно свежие драйвера Bus Mastering для всех распространенных чипсетов для систем Windows можно взять по адресу www.bmdrivers.com или на сайте iXNET в разделе "Носители информации" или "Системные платы" - драйвера IDE Bus Mastering. Установки виртуальной памяти Все современные операционные системы пользуются виртуальной памятью - специальным файлом подкачки, который компенсирует недостаточное количество физической памяти системы. Основной параметр, имеющий отношение к системе виртуальной памяти - размер файла (или нескольких файлов) подкачки.
Имеет ли смысл ставить максимально возможный размер файла подкачки? К сожалению, нет. Если файл вмещает все необходимые данные (т.е. не увеличивается в процессе работы), то быстродействие системы максимально, и поднять его увеличением размера файла не получится. Да, с увеличением файла виртуальной памяти пойдут в ход какие-то эффекты, влияющие на быстродействие системы подкачки, но они будут как за, так и против, и на практическое быстродействие хоть сколь заметным образом влиять не будут. Где и как размещать файл подкачки?
Структура логических дисков Что лучше с точки зрения производительности - один логический диск на 10 Гбайт, или 3 Гбайт, выделенных под систему, и 7 Гбайт под какие-либо данные? С точки зрения быстродействия почти всегда будет много лучше выделить под систему отдельный раздел небольшого размера (2 - 4 Гбайт). Этот шаг приведет к тому, что системные файлы, доступ к которым осуществляется более-менее одновременно, будут находиться на близких друг к другу областях физического диска - т.е. физическая "взаимная фрагментация" системных файлов будет намного ниже. Особенно стоит учесть этот момент тем, кто имеет системные диски размером несколько десятков гигабайт. Если выделить под системный логический диск 10% - 20% от емкости большого диска (т.е. около 2 Гбайт), то время поиска дорожки при движении головки диска между системными файлами будет в несколько раз меньше, нежели то время, которое необходимо затратить для перемещения головки по всему физическому диску. В случае установки системы на диск в десяток-другой Гбайт, системные файлы обязательно хаотически рассредоточатся по всему этому пространству, что создаст ненужные трудности с одновременным доступом к этим файлам. Стоит ли дробить диски каким-либо еще образом? Нет, не стоит. Каждый логический диск в процессе своего использования системой (монтирования) заставляет хранить в памяти довольно много (сотни Кбайт) служебной информации, и это уменьшает количество доступной системе памяти. Хоть это и не очень большая потеря, но с точки зрения быстродействия преимуществ в создании множества логических дисков все равно меньше. У этого правила, впрочем, есть одно исключение: если вы используете систему FAT32 (а пользователи Windows98/ME не имеют другой стандартной файловой системы), то не стоит создавать логически диски более 10 - 15 Гбайт. Если у вас винчестер, скажем, порядка 40 Гбайт, то будет разумнее сделать все таки несколько томов, помимо системного, и очень желательно так, чтобы большие тома не использовались одновременно. Другие современные файловые системы не имеют подобных ограничений. Заключение Дисковую систему конкретных операционных систем можно оптимизировать и дальше - например, управляя кэшированием, изменяя режимы работы драйверов файловых систем, и т.д. Но, к сожалению, эти настройки слишком специфичны для каждой конкретной операционной системы. Данная же статья рассказывает об общих соображениях, единых для всех операционных систем. Информация с сайта iXNET Дмитрий Михайлов (mailto:dmitry.mih@mtu-net.ru http://www.mtu-net.ru/pinetar/dm)
|