LINUX.ORG.RU

Во сколько раз чтение одного рандомного машинного слова с SSD будет медленнее RAM?

 


0

2

Да, машинное слово физически не читается ниоткуда - ни из RAM (кешлиния 64 байта), ни с SSD (блок 512...4096...? KB).

Мысленный эксперимент такой:

1. SSD: mmap 100-гигового файла и обратиться к рандомному машинному слову с непрогретым дисковым кешом.

2. RAM: выделить 100 гигов, обратиться к рандомному машинному слову.

В случае с диском ещё файловая система, SATA-контроллер, сложные мозги диска, ага.

Да-да, будет «заметно» медленнее. Интерен порядок, кто тестил. Мне лень тестить, хочу вычитать инфу из горячего кеша чьего-то мозга.



Последнее исправление: igloev (всего исправлений: 5)

может хватит поызрить скорости записи/чтения с ram и ssd.
таких данных куча в тырнете валяется. да и сам могешь протетстить - тестилок тоже кучка есть.

pfg ★★★★★
()
Ответ на: комментарий от pfg

Не хватит. Скорость там измеряется обычно линейная и в байтах в секунду. А тут всего 8 байт. Здесь время именно доступа измеряется больше — все эти задержки от SATA и прочего.

anonymous
()
Ответ на: комментарий от gremlin_the_red

Только два вопроса: 1) Зачем? 2) Какое отношение это имеет к Development?

Вопросы не нужны. Спасибо за внимание.

igloev
() автор топика
Ответ на: комментарий от igloev

Вопросы не нужны. Спасибо за внимание.

Знаю ответ, но лень писать. Зато без вопросов.

mv ★★★★★
()

Мне лень тестить, хочу вычитать инфу из горячего кеша чьего-то мозга

Кто-то посчитает это наглостью, а мне кажется это нормальный стиль. В самом деле кто-то может знать ответ. А пошли ответы «знаю ответ лень писать» - флудеры )))

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от hateyoufeel

I.e. the latency in RAM is more than 1000 times shorter than even NVMe disks. Even when comparing the fastest disk with the slowest RAM. I.e. 60us > 24 ns by nearly 2000 times

Интересные результаты, на три порядка больше времени. Но это только одно слово. Для блоков по 64 Кб например, разница будет не столько убийственной надеюсь

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Ну для блоков тоже убийственная, но это норма. Ну то есть, для памяти у нас десятки гигабайт в секунду в секунду, а для диска порядки доходят до единиц гигов в секунд. Контроллер памяти прямо в кристалле проца, а SATA подсистема всё-таки жирная и сильно более «внешняя».

igloev
() автор топика
Ответ на: комментарий от igloev

PCIe контроллер тоже на кристалле, если начали говорить про гигабайты в секунду с ссд. На сата такой скорости нет, максимум где-то в районе 500-600Мб

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Ээээ... Это латентность. Она будет одинаковой, если не брать в расчёт дисковый кэш или кэш процессора.

hateyoufeel ★★★★★
()
Ответ на: комментарий от igloev

SATA подсистема всё-таки жирная и сильно более «внешняя».

SATA актуален только для вертушек. И то не везде. Для быстрых дисков есть NVMe.

hateyoufeel ★★★★★
()

Интерен порядок, кто тестил.

Не интересен.

Мне лень тестить, хочу вычитать инфу из горячего кеша чьего-то мозга.

Тебе настолько лень тестить, что не сделал этого с прошлой темы, но зато потратил время на создание и обсуждение новой? Это странно. Кстати, где эта тема? Её удалили?

Во сколько раз чтение одного рандомного машинного слова с SSD будет медленнее RAM?

Где-то от нуля до бесконечности. Сделай бенчмарк и проверь. Это не тот вопрос, на которой ответ ищется умозрительно.

i-rinat ★★★★★
()

Интерен порядок

1e12

anonymous
()
Ответ на: комментарий от aureliano15

Если важна производительность ssd, то смотри в сторону NVMe (https://firstvds.ru/blog/nvme-vs-ssd). Они, конечно, не на порядки быстрее ssd, как RAM, но хотя бы в разы.

Всё так. Интересно было узнать про SSD не просто NVMe, а самые топовейшие SSD существующие в природе, юзающие 16 или сколько-то там дофига PCI линий и т.п.

igloev
() автор топика

Никаких данных замеров я не делал, но сейчас как раз работаю с memmap файлами на NVME SSD размером до 100 Gb.

aquadon ★★★★★
()
Ответ на: комментарий от igloev

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

aquadon ★★★★★
()
Ответ на: комментарий от igloev

самые топовейшие SSD существующие в природе, юзающие 16 или сколько-то там дофига PCI линий

Я всё-таки думаю, что pcie-линии могут дать какой-то выигрыш при чтении/записи более-менее больших блоков, но никак не машинных слов. Тут важны скоростные характеристики самого девайса (в первую очередь рандомный доступ), а не ширина канала.

aureliano15 ★★
()

На твой вопрос не может быть однозначного ответа. Ответов много в зависимости от многих факторов, конечно можно всё свести к некому среднему но это уже надмозг.

Был тут тред подобный, там аж дрались выясняя через какую шину идёт быстрее и на каком кристале. Кидали тонны ссылок выясняя почему А медленее Б. Строили заговоры и писали бенчи ссылаясь на стандарты. Только вот про реальную жизнь забыли. Апофеозом всего было то что в программной реализации тупо стоял Delay(CONST_MAGIC_VALUE)

Клавиатуру в зубы и пиши тест который покажет тебе что будет у тебя в конкретно твоём случае с конкретно твоим железом и конкретно твоей программной реализацией того что ты тестируешь.

Deleted
()

Интерен порядок, кто тестил

от 4 до 40 раз в зависимости от железа (рама, ссд, чипсет и его DMA)

reprimand ★★★★★
()
Ответ на: комментарий от anonymous

Драйвер+контроллер pcie проще, чем драйвер+контроллер sata+драйвер+контроллер pcie.

Так я с этим и не спорю. Я говорю о том, что неважно, 16 у тебя pcie-каналов, или только 4, или вообще 1, если тебе нужно прочитать единственное машинное слово.

aureliano15 ★★
()
Ответ на: комментарий от I-Love-Microsoft

Кто-то посчитает это наглостью, а мне кажется это нормальный стиль. В самом деле кто-то может знать ответ. А пошли ответы «знаю ответ лень писать» - флудеры )))

Дольше тему на ЛОРе сочинять и сраться в ней, чем тест на полэкрана написать. Или даже прогнать fio с нужными параметрами и примерно оценить порядок.

mv ★★★★★
()
Ответ на: комментарий от reprimand

от 4 до 40 раз в зависимости от железа (рама, ссд, чипсет и его DMA)

Полная и невероятная чушь. Там только на одной разнице блоков будет порядок. Разница между турпутоп памяти/ссд - ещё порядок. Летенси пару порядков. Не говоря уже о том, что ssd более параллельная херня.

delightfish
()

Мне лень тестить

Да это одну минуту займет, намного быстрее чем ждать ответа тут. Результаты же от железа и прочих факторов зависеть будут сильно. Но рискну предположить что в 100-1000 раз примерно, может чуть больше.

mbivanyuk ★★★★★
()

Во сколько раз чтение одного рандомного машинного слова с SSD будет медленнее RAM?

раз в 10 или в 30, минимум.

если PCI SSD, это примерно от 1500/1000 R/W в старых PCIe SSD, до 3500/2500 MB/s в современных или на M.2 или ещё лучше в Optane.

в SATA-III R/W 540/520 Mb/s, медленней раза в 2-3 по сравнению с PCIe.

в DRAM смотри тесты рамдисков на DDR3, DDR4. получается примерно раз в 8-10 быстрее чем PCIe SSD.

смотри тесты на каком-нибудь overclockers или 3Dnews быстродействия SSD + тесты быстродействия, чтения/записи рамдисков. разница SATA/PCIe SSD раза в 2-3 или 5-6 или больше для Optane. разница PCIe SSD и рамдисков раз в 8-10.

впрочем, тесты синтетические. «чтение рандомного машинного слова» — тоже синтетика, которая редко используется.

более-менее реальный тест: возьми например ядро линукса пересобери (где много мелких файлов). например, в gentoo через пакетный менеджер. назначь для временных файлов 1) файловую систему на PCIe SSD 2) на SATA 3 SSD 3) на tmpfs (рамдиск)

и через time замерь, сколько времени будет собираться.

ну или тот же мир обнови в gentoo, с временными файлами для сборки на SSD либо tmpfs. и реальную разницу по логам посмотри.

Да-да, будет «заметно» медленнее. Интерен порядок, кто тестил.

порядок где-то на порядок:

1. хард медленнее нормального серверного PCIe SSD раз в 10, SATA 3 SSD попсовый раза в 3, но это неточно (зависит от кеширования и вида файлов, много мелких, мало крупных, и т.п.).

то есть, разница на один порядок (логарифм 10 = 1).

2. нормальный серверный SSD раз в 8-10 медленнее рамдиска.

то есть, разница на ещё один порядок.

итого, разница харддиск - рамдиск = примерно в 100 раз (но это неточно. зависит от сценария использования и специфики самих данных).

anonymous
()
Ответ на: комментарий от anonymous

Не знаешь разницы между latency и bandwidth, пишешь глупости.

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Интересные результаты, на три порядка больше времени. Но это только одно слово. Для блоков по 64 Кб например, разница будет не столько убийственной надеюсь

ну или не на три порядка, а на два. если сравнивать тесты в каком-нибудь ATTO скорости доступа SSD SATA3, PCIe, и рамдисков чтения/записи рандомными байтами, блоками, последовательными чтениями.

самый нормальный более-менее реальный тест: взять тоже ядро пересобрать, например, и замерить через time make bzImage. когда исходники на 1)SATA3 SSD ext4; 2)PCIe SSD ext4; 3) tmpfs ext4.

anonymous
()

Мысленный эксперимент такой:

ну и производили бы этот бессмысленный мысленный эксперимент у себя в мыслях и не замусоривали им интернет.

Partisan ★★★★★
()
Ответ на: комментарий от mbivanyuk

Да это одну минуту займет, намного быстрее чем ждать ответа тут. Результаты же от железа и прочих факторов зависеть будут сильно. Но рискну предположить что в 100-1000 раз примерно, может чуть больше.

Я не «жду» ответа тут. Я запостил, забыл. Захожу иногда почитываю нотифаи не напрягаясь.

igloev
() автор топика
Ответ на: комментарий от mv

Дольше тему на ЛОРе сочинять и сраться в ней, чем тест на полэкрана написать. Или даже прогнать fio с нужными параметрами и примерно оценить порядок.

Не дольше. ПОдобный пост я херачу слепым методом не думая, и тупо излагая вопрос. Запостил и забыл. А тест кодить - это думать надо, сервак у админов просить, дебажить, ну нахер.

igloev
() автор топика
Ответ на: комментарий от igloev

в общем, напиши реальный тест скриптом на шелле, или сишный код если mmap переменная. файловая система может всё скешировать, поэтому «рандомный доступ к первому байту» и его латенси ничего не показывает про реальный сценарий.

и реальный скрипт через time и померяй.

anonymous
()

Есть такая порода отвечаторов, которые любят посрацца о том, какой автор мудак, что вместо запила теста написал вопрос. Мол на вопрос и срачь в треде потратил времени больше. Не, не больше.

igloev
() автор топика
Ответ на: комментарий от anonymous

Мне проще прочитать ответ от того, кто так уже делал. Не больно-то надо, чтобы искать сервак и пилить тест.

igloev
() автор топика
Ответ на: комментарий от igloev

А тест кодить - это думать надо

надо, ага. результаты теста сильно зависит от того, что именно и как именно тестируется. иначе у тебя получится голимая синтетика которая ХЗ что показывает. так что проще и полезнее писать более-менее реальный тест, сразу.

anonymous
()

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

igloev
() автор топика
Ответ на: комментарий от anonymous

надо, ага. результаты теста сильно зависит от того, что именно и как именно тестируется. иначе у тебя получится голимая синтетика которая ХЗ что показывает. так что проще и полезнее писать более-менее реальный тест, сразу.

Что именно и как именно - вроде в посте написано.

igloev
() автор топика
Ответ на: комментарий от igloev

С чего ты взял, что этот кто-то делал правильно? Или что его условия сооответствуют твоим?

anonymous
()
Ответ на: комментарий от anonymous

Ни с чего не взял. Жду ответов на тех же правах, на которых моя левая пятка что-то подумала. Не жду от отвечающих истины божественной. Но не понимаю одного - откуда столько переживающих, что я такой мудак, что создал этот пост) Вот смешные.

igloev
() автор топика

В случае с диском ещё файловая система

В обоих случаях есть еще и операционная система, которая ничего не гарантирует. Можно настроить и нагрузить ее так, что чтение с SSD диска займет секунд 10.

ttnl ★★★★★
()
Ответ на: комментарий от igloev

не совсем понятны все условия. например, делаем первое обращение с непрогретым кешем. и затем второе, третье, десятое, 100500-ое с прогретым. считаем среднее. скорость первого обращения без кеша ничего не показывает (быстродействия кеша) и в нормальном тесте этот результат нужно выкидывать.

например, используем разные файловые системы. или не используем никакой (raw раздел без файловой системы напрямую, чтобы кеш не влиял вообще).

результаты везде будут сильно разные.

anonymous
()
Ответ на: комментарий от igloev

в общем, в зависимости от условий результаты могут быть отличаться в 10..100..1000 раз (если грубо прикинуть, но это будет слишком грубая синтетика и может ничего конкретного не показывать).

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.