Desempenho do NVME da Intel no Linux

2

Tenho uma unidade Intel 760P NVME conectada a um Supermicro X11SRM-F com um Xeon W-2155 e 64 GB de RAM ddr4-2400. O especificações para esta reivindicação de unidade IOPS 205K-265K (qualquer que seja o meio de 8GB) com leitura aleatória de aproximadamente 3G / s e gravação aleatória de 1.3G / s.

Eu tentei usar essa unidade em uma camada LVM, bem como uma partição nua e não consigo chegar nem perto do desempenho anunciado.

A execução de um processo típico na unidade produz (via iostat ) cerca de 75MB / s de gravação, com cerca de 5K TPS (IOPS). O iostat também mostra a utilização de disco em torno de 20% (gráficos anexados abaixo), então parece que algo ainda está afundando em algum lugar. Um SSD normal da Intel sobre um cabo SATA superará a unidade neste momento. Alguma idéia do que olhar?

ATUALIZAÇÃO:Comomencionadopor@JohnMahowald-pareceseraplicação(Ruby)gargalo!?gráficosabaixodestescriptdecomandofio(tevequeaumentaroescalonamentográfico..~700MB/sescreveemaisde50KTPS:

#fullwritepassfio--name=writefile--size=10G--filesize=80G\--filename=disk_test.bin--bs=1M--nrfiles=1\--direct=1--sync=0--randrepeat=0--rw=write--refill_buffers--end_fsync=1\--iodepth=200--ioengine=libaio#randreadfio--time_based--name=benchmark--size=80G--runtime=30\--filename=disk_test.bin--ioengine=libaio--randrepeat=0\--iodepth=128--direct=1--invalidate=1--verify=0--verify_fatal=0\--numjobs=4--rw=randread--blocksize=4k--group_reporting#randwritefio--time_based--name=benchmark--size=80G--runtime=30\--filename=disk_test.bin--ioengine=libaio--randrepeat=0\--iodepth=128--direct=1--invalidate=1--verify=0--verify_fatal=0\--numjobs=4--rw=randwrite--blocksize=4k--group_reporting

    
por Server Fault 02.10.2018 / 15:48

1 resposta

1

O IOPS muito mais alto com o fio versus o benchmark original sugere que há um fator limitante em algum outro lugar que não o sistema de armazenamento.

Para planejamento de capacidade, estime qual desempenho de armazenamento você realmente precisa. Leve seus números TPS de carga real e adivinhe quais serão as necessidades de IOPS.

200k IOPS ainda é muito mais do que a maioria dos aplicativos únicos solicitará. (Que é um bom problema para ter.) Não é trivial para empurrar 100k IOPS, mesmo para geradores de carga sintéticos projetados para o armazenamento de exercício. Isso tende a exigir vários processos paralelos, ajuste de profundidade de fila e talvez E / S assíncrona.

    
por 06.10.2018 / 17:28