Quando um SSD NVMe é instalado numa ranhura que suporta menos vias PCIe do que a própria unidade, o nome do modelo, por si só, não permite saber qual é a ligação ativa. O tópico da comunidade utilizou lspci para comparar a capacidade PCIe do dispositivo com a ligação efetivamente negociada.
Verificar a capacidade da ligação e o estado atual da ligação
O comando compacto partilhado no tópico foi:


sudo lspci -vv | grep -E 'PCI bridge|LnkCap|LnkSta'
Para um dispositivo PCI específico, é normalmente mais fácil inspecioná-lo diretamente depois de saber o respetivo endereço de barramento:
sudo lspci -s 05:00.0 -vv
Os campos importantes são:
- LnkCap: a velocidade e a largura PCIe que o endpoint ou a ligação pode anunciar.
- LnkSta: a velocidade e a largura das vias atualmente negociadas.
Se uma unidade conseguir funcionar com uma ligação mais larga, mas o LnkSta mostrar menos vias, a plataforma está atualmente a executar esse dispositivo com a largura negociada mais estreita.
Associar nomes NVMe a endereços PCIe
O autor original também considerou útil o resultado detalhado do nvme-cli para associar os nomes dos dispositivos Linux aos controladores e aos endereços PCIe:
nvme list -v
Assim, é mais fácil associar uma entrada como /dev/nvme1 ao endereço PCI que pode inspecionar através do lspci.
A velocidade da ligação não é o mesmo que o débito real do SSD
O LnkSta responde à questão da negociação PCIe. Não indica a velocidade real de escrita sequencial do SSD, os IOPS aleatórios, o comportamento de limitação térmica ou o desempenho sustentado.
Para avaliar o comportamento real de E/S, utilize um teste de desempenho adequado com dados de teste descartáveis e defina cuidadosamente a carga de trabalho. A documentação de cargas de trabalho do fio explica por que razão o tamanho do bloco, a profundidade da fila, o padrão de acesso, o motor de E/S e o tamanho do teste alteram o resultado.
Não execute testes destrutivos em dispositivos brutos num sistema de ficheiros ou disco que contenha dados de que necessita.
Contexto atual de PCIe e testes de desempenho
O ecossistema PCIe da Zima é útil para compreender a diferença entre uma ranhura física e a sua largura elétrica real. As placas de expansão PCIe mostram os tipos de adaptadores NVMe e de rede utilizados nos projetos de expansão Zima, enquanto o hardware ZimaBoard 2 fornece um exemplo atual concreto de uma plataforma em que a geração PCIe e o número de vias estão explicitamente especificados.
A inspeção de dispositivos com lspci define o lspci como o utilitário Linux para inspecionar barramentos e dispositivos PCI, enquanto a listagem de dispositivos do nvme-cli mostra como nvme list -v associa controladores, espaços de nomes, transporte e endereços PCIe. Para medir E/S, em vez de negociar o barramento, utilize a documentação de cargas de trabalho do fio; a profundidade da fila, o tamanho do bloco, a combinação de leituras e escritas e o tamanho do teste alteram o resultado.
Em resumo
Utilize lspci -vv para verificar a geração PCIe e a largura das vias negociadas, e utilize nvme list -v para associar os dispositivos NVMe aos respetivos endereços PCIe. Em seguida, faça um teste de desempenho separado se precisar de conhecer o débito real do armazenamento. A velocidade de ligação negociada é uma propriedade do barramento, não uma medida do desempenho do SSD.
