LINUX.ORG.RU

Производительность NVME SSD на линуксе

 


0

2

Купил на днях NVME SSD. Паспортная скорость 3500 мб/с запись 3000 мб/с чтение. В реальности даже до 2 гб/с не дотягивает.

# dd if=/dev/nvme0n1 of=/dev/null bs=1M status=progress
скопійовано 43414192128 байтів (43 GB, 40 GiB), 30 s, 1,4 GB/s^C
41904+0 записів прочитано
41903+0 записів записано
скопійовано 43938480128 байтів (44 GB, 41 GiB), 30,3677 s, 1,4 GB/s

В чем может быть подвох?

Ответ на: комментарий от t184256

Какой был в ноуте, такой и пользую. Донный, не спорю. Ну впрочем в каждодневной работе не сказывается.

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

Да, меня аноним в сообщении чуть выше просветил уже. Но фича Host Memory Buffer стандартизирована, так что всё хорошо.

i-rinat ★★★★★
()

Паспортная скорость 3500 мб/с запись 3000 мб/с чтение. В реальности даже до 2 гб/с не дотягивает.

У меня при заявленных 3500 мб/с по факту выдает 2900 мб/с, на втором SSD соответственно 3350 заявлено и 2700 по факту. Зависит от конкретного железа видимо…

hikari
()
Ответ на: комментарий от i-rinat

Host Memory Buffer стандартизирована

Там же вроде 64Мб макс даётся? У гнуса 980 по крайней мере.

так что всё хорошо

Так что всё плохо, настолько, что для реальной нагрузки 970 эво лучше.

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

Там же вроде 64Мб макс даётся?

Судя по тестам, 980 вполне неплохо работает. И если это правда, то какая разница, сколько он использует памяти для работы?

i-rinat ★★★★★
()
Ответ на: комментарий от t184256

То есть мало того, что вместо MLC всунули TLC и цену подняли, они ещё и на кеше сэкономили?

EVO и так были на TLC, так что только на кэше. MLC лишились PRO, но DRAM у них осталась.

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

Хостовая оператива чем хуже калечной набортной?

Тем, что её только 64 Мб. И не калечной, а вполне нормальной.

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

Нет. Просто потому что подложные тестовые экземпляры и тихая смена комплектующих в процессе жизни модели это уже реальность.

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

Штука полезная, от хорошего автора, осталось понять в какой тред ты не попал этим комментом.

t184256 ★★★★★
()
Ответ на: комментарий от i-rinat

«Тест и обзор: Samsung SSD 980 - очередной провал...»
Пишут - хуже 970х. И чем интенсивнее нагрузка - тем хуже.
Впрочем в десктопных сценариях действительно всё не так плохо.

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

Это же метапрог, он боится, что его смогут деанонить если он предоставит эти данные.

anonymous
()

А Вы точно вставили как следует?

На всякий случай поинтересйтесь у жены…

Такие скорости типичны для PCI-E x2 версии 3.0

Возможно, у Вас старая система, но даже в этом случае есть огромная разница между хорошим и плохим SSD, между кукурузными 16 ядрами и мощными 6: https://www.youtube.com/watch?v=-hZGgQtl0sQ&t=1525s

anonymous
()
Ответ на: А Вы точно вставили как следует? от anonymous

Он просто в один поток тестирует, а один поток чтения занимает одну линию (не уверен, но выглядит именно так). Ему уже показали что в многопотоке цифры выше и упор уже не в шину.

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

Хорошо, возможно бред, я не знаю как чтение аппаратно реализуется на уровне каналов PCI. Но у меня PCI3.0, NVME подключен через карту-переходник в PCIx8 разъём, судя по диагностике честно задействует четыре канала. Скорость в однопотоке точно такая же как у ТС - 1.4 Гб\с, при чтении двумя и более потоками уже ближе к паспортной.

А чётвёртую звезду я только что обнаружил. Грац меня. До пятой мне ещё несколько лет бред писать.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)
Ответ на: комментарий от Jameson

И зачем указывать процессор и модель материнской платы?

Всем же сразу понятно о чем тут речь

И это не ново, что линукс предпочитает старую медленную версию протокола

Чтобы активировать PCI-E gen2 надо было что-то там самостоятельно прописывать

Да что там PCI-E! Помню, что даже во времена AGP везде уже всегда работало x8 начиная с БИОСа, и только линукс выделялся тем, что былособо одаренный - только в нем, чтобы получить свою законную скорость, надо было редактировать файлы xFree86…

Линуксойд - это судьба

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

Попробуй с –direct=1 вместо 0, это отключит буфферизацию.

Открылась любопытная закономерность. Без буферизации на этот раз оказалось медленнее, чем с буферизацией. Гонял по 300 секунд вместо 30 для верности.

С буферизацией (–direct=0) процессор был почти полностью загружен, но скорость чтения даже превысила паспортные 3500 Гб/с:

# fio --name=read --readonly --rw=read --ioengine=libaio --iodepth=16  --bs=1M --direct=0 --numjobs=16 --runtime=300 --group_reporting --filename=/dev/nvme0n1
read: (g=0): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=16
...
fio-3.25
Starting 16 processes
Jobs: 16 (f=16): [R(16)][100.0%][r=3313MiB/s][r=3313 IOPS][eta 00m:00s]
read: (groupid=0, jobs=16): err= 0: pid=6732: Fri Sep 24 04:56:10 2021
  read: IOPS=3765, BW=3766MiB/s (3949MB/s)(1103GiB/300005msec)
    slat (usec): min=209, max=154270, avg=4189.63, stdev=2263.88
    clat (usec): min=6, max=216018, avg=63080.83, stdev=13439.41
     lat (msec): min=3, max=216, avg=67.27, stdev=14.15
    clat percentiles (msec):
     |  1.00th=[   22],  5.00th=[   35], 10.00th=[   43], 20.00th=[   56],
     | 30.00th=[   61], 40.00th=[   64], 50.00th=[   66], 60.00th=[   69],
     | 70.00th=[   71], 80.00th=[   73], 90.00th=[   78], 95.00th=[   80],
     | 99.00th=[   86], 99.50th=[   88], 99.90th=[   93], 99.95th=[   97],
     | 99.99th=[  108]
   bw (  MiB/s): min= 3008, max= 7142, per=100.00%, avg=3807.14, stdev=40.02, samples=9488
   iops        : min= 3008, max= 7142, avg=3805.38, stdev=40.02, samples=9488
  lat (usec)   : 10=0.01%, 20=0.01%
  lat (msec)   : 4=0.01%, 10=0.09%, 20=0.71%, 50=13.99%, 100=85.16%
  lat (msec)   : 250=0.03%
  cpu          : usr=0.48%, sys=23.94%, ctx=61262707, majf=0, minf=8562
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=100.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=1129741,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=16

Run status group 0 (all jobs):
   READ: bw=3766MiB/s (3949MB/s), 3766MiB/s-3766MiB/s (3949MB/s-3949MB/s), io=1103GiB (1185GB), run=300005-300005msec

Disk stats (read/write):
  nvme0n1: ios=1698447/0, merge=0/0, ticks=889748/0, in_queue=889748, util=98.56%

Без буферизации (–direct=1) процессор вообще не жрало, не считая стартового пика, но оказалось медленнее (1,2 Гб/с):

# fio --name=read --readonly --rw=read --ioengine=libaio --iodepth=16  --bs=1M --direct=1 --numjobs=16 --runtime=300 --group_reporting --filename=/dev/nvme0n1
read: (g=0): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=16
...
fio-3.25
Starting 16 processes
Jobs: 16 (f=16): [R(16)][100.0%][r=1345MiB/s][r=1345 IOPS][eta 00m:00s]
read: (groupid=0, jobs=16): err= 0: pid=6786: Fri Sep 24 05:01:32 2021
  read: IOPS=1199, BW=1200MiB/s (1258MB/s)(352GiB/300186msec)
    slat (usec): min=16, max=25703, avg=132.43, stdev=108.10
    clat (msec): min=10, max=986, avg=194.80, stdev=160.24
     lat (msec): min=10, max=986, avg=194.94, stdev=160.24
    clat percentiles (msec):
     |  1.00th=[   12],  5.00th=[   16], 10.00th=[   20], 20.00th=[   27],
     | 30.00th=[   43], 40.00th=[   87], 50.00th=[  186], 60.00th=[  253],
     | 70.00th=[  300], 80.00th=[  347], 90.00th=[  409], 95.00th=[  464],
     | 99.00th=[  575], 99.50th=[  634], 99.90th=[  743], 99.95th=[  776],
     | 99.99th=[  844]
   bw (  MiB/s): min=   98, max= 5229, per=100.00%, avg=1315.95, stdev=50.05, samples=8754
   iops        : min=   96, max= 5226, avg=1314.79, stdev=50.02, samples=8754
  lat (msec)   : 20=12.33%, 50=20.55%, 100=8.57%, 250=18.10%, 500=37.59%
  lat (msec)   : 750=2.78%, 1000=0.08%
  cpu          : usr=0.09%, sys=4.80%, ctx=383463, majf=0, minf=8526
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=99.9%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=360140,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=16

Run status group 0 (all jobs):
   READ: bw=1200MiB/s (1258MB/s), 1200MiB/s-1200MiB/s (1258MB/s-1258MB/s), io=352GiB (378GB), run=300186-300186msec

Disk stats (read/write):
  nvme0n1: ios=1440339/0, merge=0/0, ticks=280084966/0, in_queue=280084966, util=91.46%
metaprog
() автор топика
Ответ на: комментарий от metaprog

Кстати, как проверить еще и скорость записи? Пока на NVME SSD нет данных, которые жалко потерять.

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