> > > > IDF 2014: тесты SSD – оценка производительности SSD с точки зрения Intel

IDF 2014: тесты SSD – оценка производительности SSD с точки зрения Intel

Опубликовано:

idf2014Большинство производителей SSD указывают для производительности SSD два ключевых параметра: производительность ввода/вывода IOPS и скорость передачи данных, которые давно приняты как меры производительности. На техническом семинаре Intel показала, что данные критерии полезны далеко не для всех сценариев – и почему SSD с высокой скоростью IOPS в некоторых сценариях показывает себя не лучше, чем SSD с низкой скоростью IOPS.

Обсуждение уместно начать с поведения чипов NAND: например, при шести циклах записи у SSD, оснащённого шестью чипами NAND, по статистической вероятности два чипа NAND выполнят по два цикла записи, два чипа NAND выполнят по одному циклу, а ещё два чипа NAND использоваться не будут. Таким образом, запись на SSD займет в два раза больше времени, чем если бы данные распределялись равномерно по всем чипам NAND. Подобный эффект разработчики Intel называют "Yahtzee" по аналогии с игральными костями. Здесь вероятность распределяется идентично костям с шестью гранями: две пары выпадают математически чаще.

Производительность SSD можно оценивать как математическую функцию: аппаратное обеспечение задает операции ввода/вывода, программное обеспечение получает соответствующий путь очереди.

Возьмём большее количество чипов NAND. В таком случае эффект будет проявляется сильнее. Intel показала следующую ступень с 50 чипами NAND. Предположим, можно достичь производительности 10K IOPS на кристалл. С оптимальным распределением циклов записи при увеличении очереди до глубины 50 IOPS производительность растет линейно, пока не достигает планки 50x 10K IOPS. Если затем циклы записи будут распределяться эффективно, то общая производительность должна остаться на уровне 500K IOPS.

Но из-за эффекта Yahtzee так не происходит: реальная производительность IOPS у SSD отстаёт от теоретической. При пиковой очереди команд (256) она действительно приближается к 500K IOPS, но в типичных сценариях глубина очереди составляет от 0 до 64 записей, так что и производительность SSD находится ниже теоретической планки.

DSC00718

Поскольку SSD различаются несколькими характеристиками, такими как распределение циклов записи, а не только максимальной производительностью IOPS, то SSD с заявленной высокой пиковой производительностью IOPS в некоторых сценариях может работать медленнее, чем SSD со сравнительно низкой пиковой производительностью IOPS.

Но важно отслеживать не только производительность записи с разной глубиной очереди команд, но и задержки при разной глубине очереди. Чем больше глубина очереди, тем выше средняя задержка. Треть операций IOPS записывается за половину времени. Причина кроется в вероятности, что операция окажется "бесплатной", и её не придется обслуживать. Эффект коллизий, с другой стороны, приводит к замедлению выполнения операций.

DSC00718

Часто в тестах измеряют равномерность IOPS, которая показывает, насколько стабильна производительность SSD – своего рода показатель QoS (Quality of Service). SSD, например, со стабильным уровнем 200.000 IOPS (операций в секунду), у которого нет "проседаний", считается более быстрым, чем SSD, который даёт 175.000 IOPS. Но этот критерий не всегда имеет отношение к QoS: SSD с низкой реальной скоростью записи может давать высокую производительность IOPS, но одна операция записи будет обслуживаться очень долго. Даже если 99,99% операций записи выполняются быстро, на выполнение каждой уходит несколько миллисекунд, что приводит к низкой производительности в приложениях.

Проиллюстрируем зависимость задержек от приложений. Разработчику приложений необходимо знать, что некоторые операции критичны к времени выполнения. Например, в приложении для фондовой биржи данные должны обеспечиваться с задержкой до 5 мс, данную задержку можно взять принять как максимальное время QoS. SSD должен быть быстрее этого уровня, например, в 99,99% IOPS. На графике ниже производительность IOPS данных SSD показана для этих 99,99%. Если принять задержку 5 мс, то SSD с синим графиком почти в три раза быстрее, чем SSD с зеленым графиком.

 DSC00727

Ещё один интересный эффект наблюдается у SSD с одновременными операциями чтения и записи. Если принять, что нагрузка составляет 70% чтения и 30% записи, то можно рассчитать производительность чтения и записи, исходя из процентных соотношений. Например, если глубина очереди составляет 40, скорость чтения SSD составляет 300K IOPS, а скорость записи – 150.000K IOPS. Тогда производительность будет следующей:

0,7x 300K + 0,3x 150K = 255K

К сожалению, это тоже неверно из-за так называемого эффекта смешения операций чтения/записи. Общая производительность будет намного ниже, здесь необходимо учитывать глубину очереди отдельно для чтения и записи. То есть необходимо оценивать производительность IOPS при заданной глубине очереди. Производительность при записи будет соответствовать глубине очереди 40 x 0,3, а при чтении – 40 x 0,7. Также из-за эффекта Yahtzee общая производительность будет существенно ниже, чем в приведенных расчетах.

Наконец, Intel также поговорила о дальнейших улучшениях в стеке AHCI, которые должны привести к более эффективной обработке большого числа операций IOPS. Нынешний стек AHCI не рассчитан на эту задачу, поскольку он был ориентирован в свое время на жёсткие диски. SSD и грядущие SSD NVM PCI Express обеспечивают существенно более высокий уровень IOPS, поэтому и нагрузка на CPU выше. А производительность CPU, как считает Intel, должна расходоваться не на обслуживание операций ввода/вывода, а на вычисления. Эффективный стек AHCI должен снизить задержки. Компания уже разработала стек под Linux, который устраняет данные проблемы и оказывается эффективнее в три раза.


DSC00732