Выбор сценария для тестирования накопителей

19 Сен 2016

Выбор сценария для тестирования накопителей

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

Как ни странно, для некоторых платформ, практикующих агрессивный Power Management, существует вероятность получения обратного эф­фек­та. Если отсутствует нагрузка на про­цес­сор, подсистема ACPI, стремясь мини­ми­зи­ро­вать потребляемую мощ­ность и нагрев компонентов, переводит ряд ре­сур­сов платформы в энергосберегающие со­стояния. Особенно это касается мобильных платформ с ак­ку­му­ля­тор­ным питанием.

Как известно, набор Power Management состояний построен на основе компромисса между минимизацией потре­бля­е­мой мощности и временем возврата в рабочий режим. Здесь все как в жизни: чем глубже сон, тем дольше бу­дет длится процесс пробуждения. Это касается не только реакции на кнопку Power, когда время исчисляется се­кун­дами, но и быстропротекающих процессов в работающей системе, здесь речь о микросекундах.

Если конкретнее, для бенчмарок дисковых устройств, в первую очередь имеют значение два параметра:

  1. Время реакции (латентность) центрального процессора при обработке запроса на прерывание, сформи­ро­ван­ного, в данном примере, контроллером AHCI. Напомним, сигнал запроса на прерывание (IRQ) исполь­зу­ет­ся контроллером дисков, чтобы сообщить о завершении выполнения ранее принятого задания и получить следующее. В данном примере, если быть точным, контроллер AHCI использует прерывание MSI (Message Signaled Interrupt), передаваемое сообщениями.
  2. Пропускная способность и латентность подсистемы оперативной памяти. Контроллер DRAM в современных платформах входит в состав процессора.

Исследование вопроса начнем с трех простых опытов. Исследуем результаты утилиты NIOBench v0.42, оце­ни­ва­ю­щей скорость чтения, записи и копирования файлов методами фреймворка Java NIO и их зависимость от наличия параллельно работающей утилиты NCRB.EXE, создающей стрессовую нагрузку на кэш-память первого уровня по­средством 256-битных AVX-инструкций.

Параметры исследуемой платформы видны на первом скрин-шоте. Плата Gigabyte GA-F2A88XM-DS2. Жесткий диск Hitachi HTS542512K9A300 (SATA2, 5400RPM, 120 GB). Выводы сделаем несколько позже, набрав и обработав массив информации. Предложенный сценарий не оптимизирован для максимального выявления описанного эф­фекта.

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

А пока только факты.

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

А это результаты при параллельной работе процесса, работающего с кэш-памятью CPU в одном потоке. Различия весьма незначительны.

Это результаты при параллельной работе процесса, работающего с кэш-памятью CPU в четырех потоках. Различия весьма незначительны.

Резюме

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

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