Чи може рейд SSD бути швидшим, ніж ramdisk?


9

Так типовий ssd матиме швидкість читання 250 - 500 мб / секунду. А барана буде приблизно в 10 разів більше.

Моє запитання: Чи може чомусь 4 ssds з raid-0 бути швидшими, ніж один блок пам'яті оперативної пам'яті?

Я або збираюся їхати з великою кількістю оперативної пам’яті та ramdisk, або 4 ssds з рейдом-0. Що швидше?

Відповіді:


12

Так типовий ssd матиме швидкість читання 250 - 500 мб / секунду. А барана буде приблизно в 10 разів більше.

Тільки про яку оперативну пам’ять ви маєте на увазі? Звичайно, це не те, що останнім часом широко використовується в ПК.

DDR3 SDRAM може тривіально надати вам швидкість передачі близько 10 ГБ / с (для цього вам потрібна DDR3-1333) і в даний час дорівнює 17 Гб / с для DDR3-2133.

Скажімо, ви знімаєте чотири SSD, здатні забезпечити 500 Мб / с, і загальна система здатна це обробляти (без суперечок шини, система все ще пов'язана з введенням / виводом тощо). Це дає вам теоретичну максимальну пропускну здатність 2 Гб / с. 4xSSD програє майже в 10 разів.

DDR3 SDRAM має затримку в області 10 нс. Хороший SSD може дати вам 100 К IOPS, вершини, що означає затримку в 10000 нс. (Наприклад, Intel 530 вказує Ik на 41 к для випадкових 4 к зчитування, що дає вам затримку майже в 25 000 нс.)

Stripe чотири швидких SSD - накопичувачів і ігнорувати всі накладні витрати, і ви могли б отримати 400K IOPS, або 2500 нс затримки. 4xSSD програє в 250 разів.

Дані з SSD повинні кудись перейти, і це "десь" буде ОЗУ. Центральний процесор може захопити його звідти, але він більше не спілкується безпосередньо на SSD, ніж спілкується безпосередньо з накопичувачем жорсткого диска, що обертається.

Якщо ми припустимо, що ви не страждаєте від суперечок шини на SSD, є сенс припустити те саме, що і для оперативної пам'яті. Це призводить до висновку, що за будь-якою з цих показників SSD є жахливо повільним порівняно з DDR3 SDRAM.

Оперативна пам’ять має й інші недоліки. Навіть порівняно з SSD, це дуже дорого за гігабайт, і йому потрібна постійна потужність, щоб зберегти його вміст. Також диск оперативної пам’яті функціонує не так само, як оперативна пам’ять, оскільки це програмне забезпечення в операційній системі. Ви все одно маєте отримати більшу частину користі для оперативної пам’яті, але ви втрачаєте таку саму кількість оперативної пам’яті, що може призвести до того, що системі потрібно частіше вдаватися до заміни (що є смертним вироком для продуктивності), і це, швидше за все, не буде дають абсолютно таку ж продуктивність, як і сира ОЗП.


ramdisk це тоді ..
Корай Тугай

1
@KorayTugay Якщо вам потрібна абсолютна найбільша продуктивність, вам слід попрямувати з диском оперативної пам’яті, але пам’ятайте, що диск оперативної пам’яті працює не зовсім так, як оперативна пам’ять, і має свій набір недоліків, не останньою з яких є ціна . (Також, хоча я ціную прийняття, я закликаю вас зачекати день або близько того, перш ніж приймати відповідь, якщо хтось надасть ще кращу відповідь.)
CVn

@KorayTugay: Взагалі кажучи, відповідь "Чи потрібен RAMDisk?" майже завжди "Ні. Якщо б вам це справді було потрібно, ви б знали достатньо, що вам не доведеться просити". Що ви робите, що змушує вас думати, що вам це потрібно?
afrazier

@afrazier розробка / тестування з величезною базою даних, і я отримую доступ до неї багато разів, і багато даних отримують з неї. Я буду тримати db в тарані. Я роблю це протягом 8 10 годин на день і чекання 4 5 секунд здається занадто довгим через деякий час. Мені потрібно швидше натиснути на db.
Корай Тугай

5
Будь-яка грамотна СУБД збереже якомога більше БД в оперативній пам'яті. Якщо ваш БД досить крихітний, щоб вміститися в RAMdisk, він досить крихітний, щоб просто вмістився в оперативній пам'яті. Правильна настройка вашої СУБД за допомогою SSD дасть вам потрібну ефективність - для місцевого розвитку ви навіть можете скористатись такими речами, як кешування назад і менше турбуватися про ACID. RAMdisk веде боротьбу з системою.
afrazier

4

Справжньою причиною відповіді "ні" є не лише порівняння різниці між ними, а й тому, що ОС врешті-решт кешуватиме дані, прочитані з SSD. Це буде кешувати це у вашій ОЗУ . Таким чином, зчитування блоку з SSD означає також блокове записування в оперативну пам'ять. Завжди.

Ось чому диски оперативної пам’яті швидше навіть у дуже спеціальних апаратних поєднаннях (наприклад, дуже швидкий SSD поєднувався з дуже повільною ОЗУ).


1
Це насправді найкраща відповідь.
ChrisInEdmonton

sudo zfs set primarycache=none tankТам іде ваш кеш на основі оперативної пам'яті. (Якщо припустити, що ви використовуєте ZFS.)
CVn

@ MichaelKjörling Правильно, і навіть на конструкціях, що не містять zfs, є можливості вимкнути кеш-пам'ять читання. Але навіть у цьому випадку, якщо ви зробите $ read () $ дзвінок, це буде фактично копія з SSD в ОЗУ. Цього ви не можете уникнути, за винятком випадків, коли ви читаєте дані якось безпосередньо в кеш-пам'яті процесора (що також означає, що ви якось уникаєте DMA), процесор AMD (і, можливо, інтелект) має інтегрований менеджер пам'яті, я думаю, що їх трохи змінена версія міг якось це зробити. Але навіть у цьому випадку потрібно буде змінити процесор.
петерх

3

Щоб відповісти на власне запитання: Ні. ОЗУ має на порядок більше пропускну здатність і на порядок менше затримки. Це навіть не близько.

Щоб відповісти на запитання, яке ви не запитуєте: те, що ви плануєте зробити, - це погана ідея, якщо ви не маєте конкретного випадку використання, який вимагає такої пропускної здатності. Якщо вам справді потрібна така швидкість, отримання SSD на базі PCIe (наприклад, ioDrive або Intel 910 буде набагато швидше, ніж мішок SATA SSD в RAID-0.

Будь-який поточний SSD буде досить швидким для навантажень споживачів та ентузіастів, якими ви будете вузьким місцем.


Власне, затримка DDR3 не на порядок нижче, ніж у SSD. Це на три-чотири порядки нижче. Дивіться мою відповідь на деякі фактичні номери. (Різниця в пропускній здатності, безумовно, є в базовому парку.)
CVn

Затримка не важлива, оскільки IO відбувається в блоках. Принаймні, в 4K блоки. Важлива пропускна здатність.
петерх

@PeterHorvath: Затримка все ще велика справа з SSD. Подивіться на всі дослідження та орієнтири на узгодженість та проблеми заїкання, які мали ранні SSD. І як згадував Майкл Кьорлінг, затримка оперативної пам’яті на кілька порядків нижче, ніж SSD. Затримка в кешах Lx ще значно нижча, а затримка в регістрі процесора ще нижча. І це все має значення для продуктивності.
afrazier

1

Оперативна пам’ять завжди буде швидшою, ніж будь-яка периферійна система шини (наприклад, SATA).

Але коли ви маєте справу з RAM-диском, ви не маєте суто справи з ОЗУ. Існує також маса програмного забезпечення (файлова система та драйвери пристроїв), які вважають, що "перетворять" сиру оперативну пам'ять у те, що ОС побачить як дискове сховище.

Наскільки швидко дійсно буде RAM-диск, повністю залежить від якості цього програмного забезпечення.

Сказавши це: Зазвичай це все-таки повинно бути в кілька разів швидше, оскільки найшвидше рішення для зберігання, яке ви можете приєднати до материнської плати.

Можливо, є певні випадкові випадки, коли конкретні шаблони використання дозволять зробити різницю меншою або майже нульовою, але без більш детальної інформації про те, що ви збираєтеся робити з такою системою, неможливо сказати, чи буде це стосуватися вашої ситуації.

PS Майте на увазі, що RAM-диск буде мінливим. Після завантаження машини вам доведеться спочатку завантажити його даними. Після вимкнення машини вам доведеться зберегти вміст (якщо він вам потрібен для наступного запуску). Якщо система виходить з ладу, ви втрачаєте RAM-диск із необхідністю нічого не економити.
Це те, що вам доведеться враховувати, особливо якщо ви очікуєте часті перезавантаження. Збереження / перезавантаження вмісту оперативної пам’яті на диску може бути менше тривіального.


Я буду тримати свою базу даних в операційній пам’яті.
Корай Тугай
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.