Diagnóstico NVMe en X99
Cómo verificar desde Linux si un SSD es NVMe real, en qué slot está instalado, mapear las líneas PCIe de una placa X99 china y por qué un Optane H10 no funciona en ella.
Sesión de diagnóstico completa sobre una placa X99 china (Xeon E5 v3 / Haswell-EP): verificar que un SSD es NVMe de verdad, descubrir en qué slot físico está, mapear la topología PCIe, y entender por qué un Optane H10 no puede funcionar en esta plataforma.
1. ¿Es realmente un NVMe?
Section titled “1. ¿Es realmente un NVMe?”El primer paso es mirar el transporte (TRAN) con lsblk:
lsblk -d -o NAME,MODEL,SIZE,TRAN,ROTANAME MODEL SIZE TRAN ROTAsda P3-512 476.9G sata 0sdb ST1000LM035-1RK172 931.5G usb 1nvme0n1 Fanxiang S660 1TB 931.5G nvme 0Claves para confirmar que es NVMe nativo:
TRAN: nvme(nosata).- El dispositivo aparece como
/dev/nvme0n1, no como/dev/sdX. lspcimuestra un controlador NVMe real:
lspci | grep -i nvme# 02:00.0 Non-Volatile memory controller: MAXIO MAP1602 (DRAM-less)El Fanxiang S660 usa el controlador MAXIO MAP1602 — un controlador PCIe 4.0 DRAM-less legítimo.
2. ¿En qué slot está y a qué velocidad negocia?
Section titled “2. ¿En qué slot está y a qué velocidad negocia?”El sysfs expone el link PCIe negociado vs. el máximo del dispositivo:
cat /sys/class/nvme/nvme0/device/current_link_speed # 8.0 GT/s PCIe (Gen3)cat /sys/class/nvme/nvme0/device/current_link_width # 4cat /sys/class/nvme/nvme0/device/max_link_speed # 16.0 GT/s PCIe (Gen4)cat /sys/class/nvme/nvme0/device/max_link_width # 4| Propiedad | Valor |
|---|---|
| Link actual | PCIe 3.0 x4 (~3.5 GB/s) |
| Capacidad del SSD | PCIe 4.0 x4 (~7 GB/s) |
| Límite de la plataforma | PCIe 3.0 (Haswell-EP) |
Rastrear el puerto físico
Section titled “Rastrear el puerto físico”readlink -f /sys/class/nvme/nvme0/device# .../pci0000:00/0000:00:01.1/0000:02:00.0El SSD cuelga del root port 00:01.1 — líneas PCIe directas de la CPU, no del chipset. Eso es lo mejor que puede pasar: sin cuello de botella DMI y sin compartir líneas con nada.
3. El truco: la tabla DMI no muestra el M.2
Section titled “3. El truco: la tabla DMI no muestra el M.2”dmidecode -t slot listó 7 slots PCIe físicos, pero ninguno con la dirección de bus 02:00.0 del SSD. Los slots onboard M.2 normalmente no aparecen en la tabla DMI. La conclusión sale de cruzar direcciones:
| Slot DMI | Bus | Qué hay |
|---|---|---|
| Slot1 (x1) | 03:00.3 | — (bus 03 es la RTX 3060) |
| Slot6 (x16) | 01:00.0 | Vacío |
| Slot2–5, 7 | ff:00.x | Entradas placeholder, no cableadas |
| NVMe | 02:00.0 | No está en la tabla → slot M.2 onboard |
4. Mapa completo de líneas PCIe
Section titled “4. Mapa completo de líneas PCIe”Script para listar todos los root ports y su estado:
for d in /sys/bus/pci/devices/0000:00:0{1,3}.* /sys/bus/pci/devices/0000:00:1c.*; do [ "$(cat $d/class)" = "0x060400" ] || continue echo "$(basename $d) max=$(cat $d/max_link_speed)x$(cat $d/max_link_width) \cur=$(cat $d/current_link_speed)x$(cat $d/current_link_width)"doneResultado en esta placa:
| Puerto | Líneas | Dispositivo |
|---|---|---|
00:01.0 (CPU) | x4 Gen3 — vacío | segundo slot M.2 libre |
00:01.1 (CPU) | x4 Gen3 | Fanxiang S660 (M.2) |
00:03.0 (CPU) | x16 Gen3 | RTX 3060 |
00:1c.3 (chipset) | x1 Gen2 | Realtek LAN onboard |
5. Por qué el Optane H10 NO funciona aquí
Section titled “5. Por qué el Optane H10 NO funciona aquí”El plan era instalar un Intel Optane H10 en el slot M.2 libre. No sirve, y el motivo no es la velocidad sino la bifurcación:
- El H10 son dos dispositivos PCIe independientes en un solo stick M.2:
- Caché Optane (32 GB) → x2 líneas
- NAND QLC (base 660p) → x2 líneas
- No trae switch PCIe: exige que el slot M.2 bifurque su x4 en x2+x2.
- X99/Haswell-EP puede bifurcar x8 → x4+x4 (por eso existen los dos M.2), pero no puede partir un x4 en x2+x2, y el BIOS tampoco tiene soporte RST/H10.
- Resultado al conectarlo: solo enumera una mitad del stick (normalmente la NAND QLC lenta, a x2). La otra mitad queda invisible.
¿Y aunque funcionara, el H10 es “más rápido”?
Section titled “¿Y aunque funcionara, el H10 es “más rápido”?”No. El H10 es un NVMe, y de los mediocres:
| Métrica | Optane H10 | Fanxiang S660 (Gen3 x4) |
|---|---|---|
| Lectura secuencial | ~2.3 GB/s (limitado a x2) | ~3.5 GB/s |
| Escritura secuencial | ~1.3 GB/s (QLC) | ~3 GB/s |
| Latencia random (cache hit) | ⭐ ~10 µs | ~50–80 µs |
| Escritura sostenida | colapsa al agotar caché SLC | mucho mejor |
Su única gracia — latencia bajísima en lecturas random con cache hit — requiere Intel RST en plataforma soportada (300-series+), que X99 no es.
Conclusiones
Section titled “Conclusiones”lsblk -o TRAN+ sysfslink_speed/widthbastan para verificar NVMe real y su link negociado.- Los slots M.2 onboard no salen en
dmidecode -t slot— hay que cruzar direcciones de bus PCI. - Esta X99 tiene 2 slots M.2 NVMe (x4 Gen3 CPU-direct cada uno), uno libre.
- El Optane H10 queda descartado: requiere bifurcación x2+x2 que la plataforma no soporta.
- Alternativa si se busca la latencia Optane: un módulo Optane puro (P1600X 58/118 GB, 800p) — es un solo dispositivo y funciona como NVMe normal en cualquier slot.