
Оказывается, «разогнать» компьютер можно без переключения частот и таймингов, не пользуясь жидким азотом, и причем — без ущерба для стабильности. Для этого достаточно расширить «бутылочное горло» платформы, оптимизировав работу жестких дисков. Дело в том, что практически все современные накопители на магнитных дисках применяют технологию ZBR или Zone Bit Recording. Она использует известный факт, проистекающий из свойств физической реальности: длина окружности зависит от ее радиуса. Говорят, что есть миры, в которых и по-другому бывает. Но мы озаботимся только практической стороной вопроса.
Зависимость производительности от размещения данных
Итак, из сказанного следует, что на внешних цилиндрах накопителя можно разместить больше информации, чем на внутренних. Этим успешно пользуются разработчики mass storage устройств, ведь законы конкуренции заставляют бороться за каждый бит. Следовательно, при постоянной скорости вращения шпинделя, количество данных, читаемых или записываемых за один оборот диска будет различным, в зависимости от их расположения на диске.
Рис 1. Количество секторов в зоне зависит от расположения на диске
Из данного факта можно извлечь практическую пользу, оптимизируя размещение данных. Разбивая диск на несколько разделов и грамотно выбирая функциональное назначение для каждого раздела, нелишне вспомнить о факторе ZBR, и расположить логический диск с наиболее востребованными данными на внешних цилиндрах физического диска. Например, если это рабочий диск для сохранения огромных файлов в графическом редакторе.
Рис 2. В Linux к назначениям разделов подходят очень тщательно
Но возникает проблема. Логическая геометрия накопителей уже несколько десятилетий, с момента интеграции контроллера в устройство и перехода от дисков MFM к устройствам IDE, не соответствует физической. Кроме того, некоторые диски используют прямую нумерацию логических цилиндров по отношению к физическим, а иные — обратную.
Рис 3. Идеальный сценарий выбора партиций жесткого магнитного диска
Поэтому, разбив диск, на разделы, необходимо экспериментально определить производительность для каждого из них, чтобы принять решение об оптимальном расположении данных.
Неочевидные факторы стабильности бенчмарок
По указанной причине, измерение производительности рекомендуется выполнять на «свежеотформатированном» накопителе, иначе фактор Zone Bit Recording, а также фрагментация файлов, неизбежно скажутся на повторяемости их результатов.
Кроме того, существенное значение имеет размер тестовых файлов. Операционная система, а также виртуальная java-машина, применяют кэширование, отложенную запись и опережающее чтение дисковых данных. Все эти технологии, весьма полезные с точки зрения повышения быстродействия, негативно влияют на стабильность результатов бенчмарок. Если нам необходимо протестировать накопитель, а не интеллект дисковых драйверов, необходимо использовать сравнительно большие файлы. Тест по умолчанию, предлагаемый разработчиками утилиты NIOBench, начиная с версии 0.30, определяет обработку 10 файлов размером 1 гигабайт. Так как для теста копирования нужны файлы-источники и получатели, такой сценарий потребует минимум 10*2=20 гигабайт свободного пространства на диске, с небольшим запасом для фоновых процессов.
И напоследок, несколько совсем уж очевидных рекомендаций. На время теста следует минимизировать количество активно работающих приложений, особенно если они обращаются к диску. И конечно, перед любыми опытами, нелишне вспомнить, что из всех искусств для нас важнейшим является backup.