On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

Несколько поучительных экспериментов или Оптимизация работы дисковой системы компьютера

Сергей Трошин

Пользователей персонального компьютера принято нынче делить на "ламеров" и "продвинутых". С "ламерами", в принципе, все более-менее ясно - любой, даже самый помешанный на компьютерах хакер когда-то был "ламером". "Ламер" - это всего лишь пользователь, который только начинает изучение такой непростой вещи как компьютер.

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

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

А тот, кто при первом же компьютерном несчастье, вместо того, чтобы самому немного подумать, просит друзей переустановить или настроить Windows, устранить "глюки", подключить новое оборудование и драйвера, не сможет никогда извлечь из своего компьютера даже минимум пользы. Это как в учебе - если списываешь и покупаешь готовые курсовые работы, то готовься на экзамене продемонстрировать себя во всей красе. Тонкости операционной системы не узнаешь, не закопавшись в них с головой. Поэтому не бойтесь самостоятельно экспериментировать с компьютером - вы поймете многое из того, что наверняка пропустили бы мимо ушей, если бы кто-то другой вам это объяснял и показывал.

А если при этом раза три-четыре придется диск отформатировать - не беда, зато разберетесь, как работают утилиты FDISK и FORMAT. 
Чаще всего пользователи, как только чуть-чуть вырастают из "ламерства", заболевают страшной болезнью под названием "оптимизация и ускорение работы компьютера" и бросаются в омут разгона процессоров, памяти, видеокарт... И, как правило, совершенно забывают, что зачастую основным тормозом системы является жесткий диск.

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

Ну, а что здесь можно разогнать, - спросите вы? Действительно, шпиндель винчестера быстрее крутиться не заставишь, разве что вентиляторов на корпус налепить - чтобы диск хотя бы служил чуть подольше. Но дело в том, что очень часто диски пользователей просто не показывают даже то, на что они способны - ведь мало купить диск с модной наклейкой UDMA/100, надо, чтобы он все свои вкусности еще и использовал!

Многие пользователи начинают свой путь в направлении "продвинутости" с изучения вдоль и поперек настроек BIOS, относящихся к разгону "железа"; они четко знают, на каких частотах работают процессор, шина, память, можно или нельзя поднять их еще немного, но даже не задумываются о том, в каком режиме работает их супер-навороченный жесткий диск. А между тем, в Windows имеется так много настроек, способных в несколько раз ухудшить работу дисковой системы и привести к непозволительно высокой загрузке процессора во время операций с диском, что сам черт ногу сломит!

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

Драйвер

Современные IDE-винчестеры, как правило, сделаны с использованием технологии Bus Mastering и поддерживают режим UDMA. Благодаря этому, во-первых, многократно снижается нагрузка на центральный процессор при обращениях к диску, а во-вторых - значительно увеличивается скорость обмена данными с буфером винчестера.

При устаревших же режимах PIO (programmed input/output) процессору приходилось самому управлять пересылкой данных, что неразумно расходовало его ресурсы на эту рутинную операцию, и периодически вызывало совершенно лишние тормоза в играх и прикладных программах. Сегодня эта забота легла на плечи чипсета и контроллера жестких дисков, что вполне логично. Теоретические пределы скорости передачи информации при разных режимах работы диска таковы: 

  • - PIO0 - 3,3 Мб/с 

  • - PIO1 - 5,2 Мб/с

  • - PIO2 - 8,3 Мб/с

  • - PIO3 - 11,1 Мб/с

  • - PIO4 - 16,6 Мб/с

  • - PIO5 - 33,3 Мб/с 

  • - DMA MW-1 - 13,3 Мб/с

  • - DMA MW-2 - 16,6 Мб/с

  • - UDMA0 - 16,6 Мб/с

  • - UDMA1 - 25 Мб/с

  • - UDMA2 - 33,3 Мб/с

  • - UDMA3 - 44,4 Мб/с

  • - UDMA4 - 66,6 Мб/с

  • - UDMA5 - 100 Мб/с

Учтите, что все эти сумасшедшие десятки мегабайт в секунду - это скорость работы с буфером диска, а не скорость непосредственного считывания с "блинов" - она всегда заметно ниже. Разумеется, необходимо, чтобы и материнская плата поддерживала режим UDMA, соответствующий возможностям вашего жесткого диска - иначе ничего не получится.

От чего же, в основном, зависит работа винчестера в режиме UDMA под Windows 9x? От драйвера контроллера жесткого диска. Но если вы обратите внимание на наличие этого драйвера для вашей материнской платы, то обнаружите, что драйверов этих может быть несколько: от Microsoft, от High Point - производителя контроллера - или от производителя вашего чипсета, например, VIA или Intel. Как влияют разные драйвера и настройки на загрузку процессора и скорость обмена с буфером жесткого диска?

Все ли они одинаково хороши? Попробуем выбрать, какой из драйверов нам лучше всего использовать для одного совершенно рядового тестового компьютера, причем весьма старенького, применительно к которому поиск всевозможных тайных лазеек в направлении ускорения его работы - задача первостепенной важности. 

Берем Pentium 166 MMX, 430TX чипсет, 96 Мб памяти, два жестких диска - Quantum Fireball ST2 (2.1 Гб, UDMA/33) и Seagate ST38410A (8,4 Гб, UDMA/66), привод CD-ROM Matsushita CR-584 (попрошу не смеяться над антиквариатом - все это хозяйство мне верно служит уже года четыре!). В качестве диска, пожертвованного под эксперименты, выбираем старенький надежный Quantum, предварительно разбитый на два раздела - 500 Мб FAT16 и 1,5 Мб FAT32.

Первый раздел оставлен практически совершенно чистым (четыре дефрагментированных системных файла на пару килобайт) - над ним и будем издеваться, тем более, что его небольшой размер значительно сократит время всевозможных "бенчмарков". Seagate пока выставлен в CMOS Setup как "NONE", то есть отключен - позже увидите, для чего это сделано. Операционная система, свежеустановленная "по-голому" на второй раздел "квантума" - это русская Windows 98 SE, все программы из автозагрузки удалены - по CTRL+ALT+DEL отображается один Explorer.

Использование файла подкачки отключено, чтобы "винде" не пришло в голову посвопиться во время прогона теста и исказить тем самым его результаты. Никаких особых настроек более не делалось - разве что я отключил режим автораспознавания диска для привода CD-ROM - это не нравится одной из примененных для тестирования программ и вызывает BSOD. 

Для тестирования использовались следующие утилиты: HD Tach (http://www.tcdlabs.com/), DiskSpeed (www.aha.ru/~alegr/download/diskspeed.exe), SiSoft Sandra (www.sisoftware.demon.co.uk/sandra), Michael's Disk Benchmark v1.11 (URL неизвестен).

Это одни из самых простых и доступных для рядового пользователя тестов. Асы, разумеется, для получения более объективных результатов воспользуются более мощными "бенчмарками", для показательного же испытания вполне годятся и эти - очень, кстати, неплохие и быстрые программы. Каждый тест прогоним раз пять, и вычислим среднее арифметическое значение для каждого показателя.

Да, чуть не забыл! Обязательно сделайте резервную копию реестра, скопировав в отдельную папку файлы user.dat, system.dat и еще classes.dat в "Миллениуме" - на случай каких либо непредвиденных сложностей, например, если ПК не захочет загрузиться, вы из-под MS-DOS вернете старый реестр с рабочими настройками на место.

Для начала посмотрим, как организует работу с винчестерами Windows по умолчанию - многие так доверяют этой системе, что используют без разговоров все, что она предлагает. Запустим наши тесты сразу же после установки ОС, используя входящий в ее состав драйвер контроллера HDD, имеющий поддержку Bus Mastering, но почему-то никогда не включающий ее самостоятельно - снят флажок "DMA" в свойствах диска ("Панель Управления" -> "Система" -> "Устройства" -> "Жесткие диски" -> ваш диск -> "Свойства" -> "Настройка").

Драйвер контроллера на тестовой машине при этом называется "Intel 82371 AB/EB PCI Bus Master IDE", версия от 05.05.99 г. Надо еще сказать, что в Свойствах Системы виден только диск, настройки которого прописаны в CMOS Setup (второй - "NONE", как я уже говорил), что совсем не здорово - если же в BIOS прописать второй винчестер, то он вклинится на место диска D:, перепутав все обозначения.

Да и обозначен тестовый диск как "GENERIC IDE DISK TYPE 00", что, конечно, не страшно, но и не очень приятно - качественный драйвер должен уметь опознавать марку "винта". После проведения тестов видим - с этими установками налицо жуткая загрузка процессора (70 - 80%) и скорость обмена с буфером диска UDMA/33 всего на уровне 10 Мб/с - то есть, ясно, что ни о каком UDMA речь не идет. Ну что ж, это было, в принципе, и так понятно: установил Windows - первым же делом включай режим DMA для всех дисков, иначе при любых обращениях к ним будут серьезные тормоза. 

Хорошо, уговорили, ставим флажки у жесткого диска и CD-ROM. После перезагрузки второй винчестер по-прежнему недоступен, а флажок у "сидюка" пропал - видимо, "винда" считает, что он не может работать в режиме DMA (обычном, не UDMA), хотя в инструкции к нему поддержка DMA упоминается. Снова запускаем тесты - и их результат более чем впечатляет: один незаметный для неискушенного пользователя флажок уменьшает загрузку маломощного процессора раз в десять! 

Скорость обмена с буфером диска, по показаниям HD Tach, возрастает до 28 Мб - это уже желанный UDMA/33, однако на реальных операциях с файлами, которые эмулируют тестовые программы, скорость увеличилась не так сильно, как хотелось бы - до 12-13 Мб - это уже работа драйвера и системы кэширования Windows Vcache. 

Есть у "виндового" драйвера очень большой недостаток, делающий его абсолютно непригодным для применения на моем компьютере: при включении в CMOS Setup второго диска (Seagate UDMA/66), заветный флажок для него поставить никак не удается - после перезагрузки он пропадает. Если же включить режим DMA для него вручную, принудительно прописав в реестре: 

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\hdc\0002]
"IDEDMADRIVE0"=hex:01
[HKEY_LOCAL_MACHINE\Enum\ESDI\
GENERICIDE__DISK_TYPE46_\MF&CHILD0000
&PCI&VEN_8086&DEV_7111&SUBSYS_00000000&REV_01&BUS_
00&DEV_07&FUNC_0100]"DMACurrentlyUsed"=hex: 01

(где "0002" - второй IDE-контроллер, к которому подключен диск, а "IDEDMADRIVE0" означает, что этот диск выставлен как "master"), то компьютер вообще отказывается загружаться, при этом "винт" издает весьма неприятные звуки, от которых рука непроизвольно тянется к кнопке "Power".

Посмотрим теперь, что нам даст самое последнее обновление "виндового" драйвера, называемое "Intel INF Update for Intel Chipsets" и заблаговременно скачанное с сайта Intel (http://www.intel.com/). По окончании процедуры установки драйвера система перезагрузилась, заново обнаружила некоторые устройства, однако драйвер контроллера жестких дисков остался в результате прежний - пришлось новый выбирать вручную.

Для этого надо открыть диалоговое окно свойств контроллера, на странице "Драйвер" выбрать "Обновить драйвер", далее "Указать местоположение нового драйвера" -> "Показать весь список". В открывшемся окне вы увидите, что среди совместимых драйверов контроллера появился еще и драйвер от 4.14.2000. Его-то и надо выбрать, чтобы посмотреть, произойдут ли какие-либо улучшения.

Опять запускаем все наши тесты. Несколько снизилась загрузка процессора - это неплохо, но этим дело и ограничивается. Существенных изменений не произошло - немного уменьшилась скорость чтения, но это большой роли не играет - скорее всего, виновата погрешность измерения.

Флажок "DMA" для второго "винта" и привода CD-ROM по-прежнему установить не удается, а при отключении Seagate в CMOS Setup диск этот также перестает быть доступен.



Литература по накопителям