As unidades NVMe com ponte PLX são lentas no desempenho

1

Recentemente, comprei algumas unidades NVME para um servidor doméstico que estou executando.

Eu decidi torná-lo mais amigável ao orçamento e potencialmente melhorou as IOPs escolhendo um cartão Add on da Supermicro que usa uma ponte PLX em um slot pcie para permitir que dois ssds de fator de forma 2.5 sejam conectados de uma só vez.

O modelo do cartão é: AOC-SLG3-2E4

Eu iniciei o linux em um SSD regular separado e posso ver a placa e as unidades funcionando bem com as seguintes verificações:

liang@Sonny:~$ lspci |grep 0953
06:00.0 Non-Volatile memory controller: Intel Corporation Device 0953 (rev 01)
07:00.0 Non-Volatile memory controller: Intel Corporation Device 0953 (rev 01)
liang@Sonny:~$ lspci |grep PLX
04:00.0 PCI bridge: PLX Technology, Inc. PEX 8718 16-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch (rev aa)
05:01.0 PCI bridge: PLX Technology, Inc. PEX 8718 16-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch (rev aa)
05:02.0 PCI bridge: PLX Technology, Inc. PEX 8718 16-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch (rev aa)
liang@Sonny:~$ 

O problema é que não estou obtendo as velocidades de gravação anunciadas de 900mb / s:

liang@Sonny:~$ sudo dd if=/dev/zero of=/dev/nvme0
dd: writing to ‘/dev/nvme0’: Invalid argument
1+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000297179 s, 0.0 kB/s
liang@Sonny:~$ sudo dd if=/dev/zero of=/dev/nvme0n1
^C7058361+0 records in
7058361+0 records out
3613880832 bytes (3.6 GB) copied, 14.3664 s, 252 MB/s
liang@Sonny:~$ sudo dd if=/dev/zero of=/dev/nvme1n1
^C764433+0 records in
764433+0 records out
391389696 bytes (391 MB) copied, 2.48995 s, 157 MB/s
liang@Sonny:~$ sudo dd if=/dev/nvme0n1 of=/dev/nvme1n1
^C930417+0 records in
930417+0 records out
476373504 bytes (476 MB) copied, 2.98179 s, 160 MB/s
liang@Sonny:~$ sudo dd if=/dev/nvme0n1 of=/dev/nvme1n1
^C23402049+0 records in
23402049+0 records out
11981849088 bytes (12 GB) copied, 59.4382 s, 202 MB/s

Como pode ser visto, é apenas cerca de 200mb / s Eu verifiquei que não é um gargalo da CPU, e no meu SSD normal que eu iniciei estou recebendo 300mb / s:

liang@Sonny:~$ sudo dd if=/dev/nvme0n1 of=/home/liang/asdfasdf
^C3717510+0 records in
3717509+0 records out
1903364608 bytes (1.9 GB) copied, 5.71793 s, 333 MB/s

Alguém tem uma experiência semelhante? Alguns drivers precisam ser instalados? É potencialmente o cartão que está em falta? Ou há algo relacionado a software que esteja criando sobrecarga nas velocidades de transferência?

Felicidades.

Editar detalhes adicionais

liang@Sonny:~$ uname -a
Linux Sonny 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:43:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Placa-mãe: ASUS Z10PE-D8 Disco Código do produto: SSDPE2MW400G4R5 (Intel 750 Serises NVME ssd capacidade de 400GB)

    
por Liang 11.08.2015 / 01:32

1 resposta

0

Você está fazendo um benchmarking errado: emitindo dd if=/dev/zero of=/dev/nvme0 usando 512 bytes de escrita, que são claramente muito pequenos.

Tente usar dd if=/dev/zero of=/dev/nvme0 bs=1M e você terá um número muito maior.

Como uma nota secundária, usando 512 bytes gravados, o disco diretamente conectado possui um desempenho mais alto pela virtude de menor latência (o PLX inevitavelmente adiciona alguma latência).

    
por 11.08.2015 / 11:53

Tags