Hacker News Digest

04 сентября 2025 г. в 22:01 • bitflux.ai • ⭐ 265 • 💬 120

OriginalHN

#io-uring#mmap#ssd#raid-0#pci-e#amd#nvme#memory#disk#performance

io_uring is faster than mmap

TL;DR
Чтение напрямую с диска быстрее, чем из кеша в памяти: пропускная способность SSD растёт, а латентность памяти стоит на месте. Нужны новые инструменты.

Эксперимент

  • Задача: подсчитать количество десяток в 50 ГБ псевдослучайных int.
  • Железо: AMD EPYC 7551P, 96 ГБ DDR4-2133, два Samsung PM983a PCIe 3.0 SSD (3,1 ГБ/с каждый) в RAID-0.
  • Ограничения:
    • Память: 13 ГБ/с на поток (3 канала × 2133 МТ/с × 8 Б / 4 NUMA-домена).
    • Диски: 6,2 ГБ/с суммарно.

Код

int* data = mmap(..., size, PROT_READ, MAP_SHARED, fd, 0);
for (...) if (data[i] == 10) count++;

Результаты

  • Первый запуск (с диска): 0,61 ГБ/с — ограничение диск.
  • Второй запуск (из кеша): 3,71 ГБ/с — всё ещё ниже пропускной способности памяти.
  • Бутылочное горлышко: не векторизованный цикл, ~3–4,5 млрд инструкций/с.