Тестування nvme-накопичувачів в різних режимах роботи інтерфейсу pci express практичне

Дякую вам за підтримку!

Якщо запитати, який інтерфейс слід використовувати для твердотільного накопичувача з підтримкою протоколу NVMe, то будь-яка людина (взагалі знає, що таке NVMe) відповість: звичайно PCIe 3.0 x4! Правда, з обґрунтуванням у нього, швидше за все, виникнуть складності. У кращому випадку отримаємо відповідь, що такі накопичувачі підтримують PCIe 3.0 x4, а пропускна здатність інтерфейсу має значення. Мати-то має, проте всі розмови про це почалися тільки тоді, коли деяким накопичувачів на деяких операціях стало тісно в рамках «звичайного» SATA. Але ж між його 600 МБ / с і (так само теоретичними) 4 ГБ / с інтерфейсу PCIe 3.0 x4 - просто прірва, причому заповнена масою варіантів! А раптом і однієї лінії PCIe 3.0 вистачить, оскільки це вже в півтора рази більше SATA600? Масла у вогонь підливають виробники контролерів, які загрожують у бюджетній продукції перейти на PCIe 3.0 x2, а також той факт, що у багатьох користувачів і такого-то немає. Точніше, теоретично є, але вивільнити їх можна, лише переконфігурувати систему або навіть щось в ній поміняв, чого робити не хочеться. А ось купити топовий твердотільний накопичувач - хочеться, але є побоювання, що користі від цього не буде зовсім ніякої (навіть морального задоволення від результатів тестових утиліт).

Але так це чи ні? Іншими словами, чи потрібно дійсно орієнтуватися виключно на підтримуваний режим роботи - чи все-таки на практиці можна поступитися принципами. Саме це ми сьогодні і вирішили перевірити. Нехай перевірка буде швидкою і не претендує на вичерпну повноту, однак отриманої інформації повинно виявитися досить (як нам здається) хоча б для того, щоб задуматися. А поки коротко ознайомимося з теорією.

PCI Express: існуючі стандарти і їх пропускна здатність

Почнемо з того, що являє собою PCIe і з якою швидкістю цей інтерфейс працює. Часто його називають «шиною», що трохи невірно ідеологічно: як такої шини, з якої з'єднані всі пристрої, немає. На ділі є набір з'єднань «точка-точка» (схожий на багато інших послідовні інтерфейси) з контролером в середині і приєднаними до нього пристроями (кожне з яких саме по собі може бути і концентратором наступного рівня).

Методика тестування

Провести тести з різними версіями стандарту PCIe нескладно: практично всі контролери дозволяють використовувати не тільки підтримуваний ними, але і все більш ранні. Ось з кількістю ліній - складніше: нам хотілося безпосередньо протестувати і варіанти з однією-двома лініями PCIe. Використовувана нами зазвичай плата Asus H97-Pro Gamer на чіпсеті Intel H97 повного набору не підтримує, але крім «процесорного» слота х16 (який зазвичай і використовується) на ній є ще один, який працює в режимах PCIe 2.0 х2 або х4. Ось цієї трійкою ми і скористалися, додавши до неї ще й режим PCIe 2.0 «процесорного» слота, щоб оцінити, чи є різниця. Все-таки в цьому випадку між процесором і SSD сторонніх «посередників» немає, а ось при роботі з «чіпсетний» слотом - є: власне чіпсет, фактично з'єднується з процесором тим же PCIe 2.0 x4. Можна було додати ще кілька режимів роботи, але основну частину дослідження ми все одно збиралися провести на іншій системі.

Справа в тому, що ми вирішили скористатися нагодою і заодно перевірити одну «міську легенду», а саме повір'я про корисність використання топових процесорів для тестування накопичувачів. Ось і взяли восьміядерний Core i7-5960X - родича зазвичай застосовується в тестах Core i3-4170 (це Haswell і Haswell-E), але у якого ядер в чотири рази більше. Крім того, виявлена ​​в засіках плата Asus Sabertooth X99 нам сьогодні корисна наявністю слота PCIe x4, на ділі здатного працювати як х1 або х2. У цій системі ми протестували три варіанти х4 (PCIe 1.0 / 2.0 / 3.0) від процесора і чіпсетний PCIe 1.0 х1, PCIe 1.0 х2, PCIe 2.0 х1 і PCIe 2.0 х2 (у всіх випадках чіпсетний конфігурації відзначені на діаграмах значком (c)). Чи є сенс зараз звертатися до першої версії PCIe, з урахуванням того, що навряд чи знайдеться хоч одна плата з підтримкою тільки цієї версії стандарту, здатна завантажитися з NVMe-пристрої? З практичної точки зору - ні, а ось для перевірки апріорі передбачуваного співвідношення PCIe 1.1 х4 = PCIe 2.0 х2 і подібних воно нам знадобиться. Якщо перевірка покаже, що масштабованість шини відповідає теорії, значить, і неважливо, що нам не вдалося поки отримати практично значущі способи підключення PCIe 3.0 x1 / х2: перший буде ідентичний якраз PCIe 1.1 х4 або PCIe 2.0 х2, а другий - PCIe 2.0 х4 . А вони у нас є.

У плані ПО ми обмежилися тільки Anvil's Storage Utilities 1.1.0: різноманітні низькорівневі характеристики накопичувачів вона вимірює непогано, а нічого іншого нам і не потрібно. Навіть навпаки: будь-який вплив інших компонентів системи є вкрай небажаним, так що низкоуровневая синтетика для наших цілей є безальтернативною.

Тестування nvme-накопичувачів в різних режимах роботи інтерфейсу pci express практичне

Як «робочого тіла» ми використали Patriot Hellfire ємністю 240 ГБ. Як було встановлено при його тестуванні, це не рекордсмен по продуктивності, але його швидкісні характеристики цілком відповідають результатам кращих SSD того ж класу і тієї ж ємності. Та й більш повільні пристрої на ринку вже є, причому їх буде ставати все більше. В принципі, можна буде повторити тести і з чим-небудь більш швидким, проте, як нам здається, необхідності в цьому немає - результати передбачувані. Але не станемо забігати вперед, а подивимося, що ж у нас вийшло.

результати тестів

Тестування nvme-накопичувачів в різних режимах роботи інтерфейсу pci express практичне

Тестування nvme-накопичувачів в різних режимах роботи інтерфейсу pci express практичне

Все рівно і красиво. Але шаблони не рве. максимум в цих тестах становить лише трохи більше 500 МБ / с, а це цілком під силу навіть SATA600 або (в додатку до сьогоднішнього тестування) PCIe 1.0 х4 / PCIe 2.0 х2 / PCIe 3.0 х1. Саме так: не варто лякатися випуску бюджетних контролерів під PCIe х2 або наявності лише такої кількості ліній (причому версії стандарту 2.0) в слотах М.2 на деяких платах, коли більше-то і не потрібно. Іноді і стільки не потрібно: максимальні результати досягнуті при черзі в 16 команд, що для масового ПЗ не типово. Найчастіше зустрічається чергу з 1-4 командами, а для цього обійтися можна і однією лінією самого першого PCIe і навіть найпершим SATA. Втім, накладні витрати та інше мають місце бути, так що швидкий інтерфейс корисний. Однак надмірно швидкий - хіба що не шкідливий.

А ще в цьому тесті по-різному поводяться платформи, причому з одиничною чергою команд - принципово по-різному. «Біда» зовсім не в тому, що багато ядер - погано. Вони тут все одно не використовуються, хіба що одне, і не настільки, щоб щосили розвернувся буст- режим. Ось і маємо різницю десь в 20% по частоті ядер і півтора рази по кеш-пам'яті - вона в Haswell-E працює на більш низькій частоті, а не синхронно з ядрами. Загалом, топова платформа може стати в нагоді хіба що для вибивання максимуму «йопсов» за допомогою максимально многопоточного режиму з великою глибиною черги команд. Шкода тільки, що з точки зору практичної роботи це зовсім вже сферична синтетика в вакуумі :)

Тестування nvme-накопичувачів в різних режимах роботи інтерфейсу pci express практичне

На записі стан справ принципово не змінилося - у всіх сенсах. Але, що цікаво, на обох системах найшвидшим виявився режим PCIe 2.0 х4 в «процессорном» слоті. На обох! І при багаторазових перевірках / повторні огляди. Тут вже мимоволі задумаєшся, чи потрібні ці ваші нові стандарти або краще взагалі нікуди не поспішати.

Тестування nvme-накопичувачів в різних режимах роботи інтерфейсу pci express практичне

При роботі з блоками різного розміру теоретична ідилія розбивається об те, що підвищення швидкості інтерфейсу все ж має сенс. Результуючі цифри такі, що вистачило б пари ліній PCIe 2.0, але реально в такому випадку продуктивність нижче, ніж у PCIe 3.0 х4, нехай і не в рази. І взагалі тут бюджетна платформа топову «забиває» в куди більшій мірі. А адже саме такого роду операції в основному в прикладному ПО і зустрічаються, т. е. ця діаграма - найбільш наближена до реальності. В результаті немає нічого дивного, що ніякого «вау-ефекту» товсті інтерфейси і модні протоколи не дають. Точніше, яке переходить з механіки - дадуть, але рівно такий же, який йому забезпечить будь твердотільний накопичувач з будь-яким інтерфейсом.

Тестування nvme-накопичувачів в різних режимах роботи інтерфейсу pci express практичне

Отже, що ми бачимо? Застосування PCIe 3.0 x4 при наявності можливості є, безумовно, кращим, але не необхідним: NVMe-накопичувачів середнього класу (в своєму спочатку топовом сегменті) він приносить буквально 10% додаткової продуктивності. Та й то - за рахунок операцій в общем-то не такі вже й часто зустрічаються на практиці. Для чого ж в даному випадку реалізований саме цей варіант? По-перше, була така можливість, а запас кишеню не тягне. По-друге, є накопичувачі і швидше, ніж наш тестовий Patriot Hellfire. По-третє, є такі області діяльності, де «атипові» для настільної системи навантаження - як раз цілком типові. Причому саме там найбільш критично швидкодію системи зберігання даних або, принаймні, можливість зробити її частина дуже швидкою. Але до звичайних персональних комп'ютерів це все не стосується.

У них, як бачимо, і використання PCIe 2.0 x2 (або, відповідно, PCIe 3.0 х1) не приводить до драматичного зниження продуктивності - лише на 15-20%. І це незважаючи на те, що потенційні можливості контролера в цьому випадку ми обмежили в чотири рази! Для багатьох операцій і такої пропускної здатності досить. Ось однієї лінії PCIe 2.0 вже недостатньо, тому контролерам має сенс підтримувати саме PCIe 3.0 - і в умовах жорсткої нестачі ліній в сучасній системі це буде працювати непогано. Крім того, корисна ширина х4 - навіть при відсутності підтримки сучасних версій PCIe в системі вона все одно дозволить працювати з нормальною швидкістю (нехай і повільніше, ніж могло б потенційно), якщо знайдеться більш-менш широкий слот.

В принципі, велика кількість сценаріїв, в яких вузьким місцем виявляється власне флеш-пам'ять (так, це можливо і притаманне не тільки механіці), призводить до того, що чотири лінії третьої версії PCIe на цьому накопичувачі обганяють одну першої приблизно в 3,5 рази - теоретична ж пропускна здатність цих двох випадків різниться в 16 разів. З чого, зрозуміло, не випливає, що потрібно спішно бігти освоювати зовсім повільні інтерфейси - їх час минув безповоротно. Просто багато можливостей швидких інтерфейсів можуть бути реалізовані лише в майбутньому. Або в умовах, з якими звичайний користувач звичайного комп'ютера ніколи в житті безпосередньо не зіткнеться (за винятком любителів мірятися відомо чим). Власне, і все.