Files
Baradb/docs/ru/performance.md

2.9 KiB
Raw Permalink Blame History

Руководство по производительности

Методология бенчмаркинга

Все бенчмарки запускаются с:

  • Компилятор: Nim 2.2.0 с -d:release --opt:speed
  • CPU: AMD Ryzen 9 5900X (12 cores / 24 threads)
  • Память: 64 GB DDR4-3600
  • Хранилище: Samsung 980 Pro NVMe SSD
  • OS: Ubuntu 24.04 LTS
nim c -d:ssl -d:release -r benchmarks/bench_all.nim

Бенчмарки хранилища

LSM-Tree Key-Value

Метрика Значение
Пропускная способность записи ~580,000 ops/s
Пропускная способность чтения ~720,000 ops/s
Средняя латентность записи 1.7 µs
Средняя латентность чтения 1.4 µs

B-Tree индекс

Метрика Значение
Пропускная способность вставки ~1,200,000 ops/s
Пропускная способность точечного поиска ~1,500,000 ops/s
Диапазонное сканирование (1000 ключей) ~0.3 ms

Бенчмарки векторного движка

HNSW индекс

Метрика Значение
Вставка (dim=128) ~45,000 vectors/s
Поиск top-10 (dim=128, n=100K) ~8 ms
Память на вектор (dim=128) ~580 bytes

Параметры: M=16, efConstruction=200, efSearch=64.

SIMD функции расстояния

Операция dim=128 dim=768 dim=1536
Cosine distance 4.2M/s 850K/s 420K/s
L2 (Euclidean) 4.5M/s 920K/s 450K/s
Dot product 4.8M/s 980K/s 480K/s

Бенчмарки протоколов

Протокол Соединения Запросов/сек Латентность p99
Binary (localhost) 1 45,000 0.4 ms
Binary (localhost) 100 380,000 1.2 ms
HTTP/REST 1 12,000 2.1 ms
HTTP/REST 100 95,000 5.8 ms

Руководство по настройке

Для нагрузки с интенсивной записью

export BARADB_MEMTABLE_SIZE_MB=256
export BARADB_WAL_SYNC_INTERVAL_MS=10
export BARADB_COMPACTION_INTERVAL_MS=30000

Для нагрузки с интенсивным чтением

export BARADB_CACHE_SIZE_MB=1024
export BARADB_BLOOM_BITS_PER_KEY=10
export BARADB_COMPACTION_INTERVAL_MS=120000

Для векторного поиска

export BARADB_VECTOR_EF_CONSTRUCTION=200
export BARADB_VECTOR_EF_SEARCH=128
export BARADB_VECTOR_M=32

Для графовой аналитики

export BARADB_GRAPH_PAGE_RANK_ITERATIONS=20
export BARADB_GRAPH_LOUVAIN_RESOLUTION=1.0