mirror of
https://github.com/qdrant/landing_page.git
synced 2026-09-27 15:08:30 +02:00
Merge branch 'io_uring' of https://github.com/qdrant/landing_page into io_uring
This commit is contained in:
@@ -121,38 +121,10 @@ entry or setting the value to `false`.
|
|||||||
|
|
||||||
To run the benchmark, use a test instance of Qdrant; if necessary spin up a
|
To run the benchmark, use a test instance of Qdrant; if necessary spin up a
|
||||||
docker container and load a snapshot of the collection you want to benchmark
|
docker container and load a snapshot of the collection you want to benchmark
|
||||||
with. You can copy and edit the following bash script to run the benchmark.
|
with. You can copy and edit our [benchmark script](/articles_data/io_uring/rescore-benchmark.sh)
|
||||||
|
to run the benchmark. Run the script with and without enabling
|
||||||
```bash
|
`storage.async_scorer` and once. You can measure IO usage with `iostat` from
|
||||||
export QDRANT_URL="<qdrant url>"
|
another console.
|
||||||
export COLLECTION="<collection name>"
|
|
||||||
export CONCURRENCY=4 # or 8
|
|
||||||
export OVERSAMPLING=1 # or 4
|
|
||||||
|
|
||||||
time seq 1000 | xargs -P ${CONCURRENCY} -I {} curl -L -X POST \
|
|
||||||
"http://${QDRANT_URL}/collections/${COLLECTION}/points/recommend" \
|
|
||||||
-H 'Content-Type: application/json' --data-raw \
|
|
||||||
"{ \"limit\": 10, \"positive\": [{}], \"params\": { \"quantization\": \
|
|
||||||
{ \"rescore\": true, \"oversampling\": ${OVERSAMPLING} } } }" \
|
|
||||||
-s | jq .status | wc -l
|
|
||||||
|
|
||||||
time seq 1000 2000 | xargs -P ${CONCURRENCY} -I {} curl -L -X POST \
|
|
||||||
"${QDRANT_URL}/collections/${COLLECTION}/points/recommend" \
|
|
||||||
-H 'Content-Type: application/json' --data-raw \
|
|
||||||
"{ \"limit\": 10, \"positive\": [{}], \"params\": { \"quantization\": \
|
|
||||||
{ \"rescore\": true, \"oversampling\": ${OVERSAMPLING} } } }" \
|
|
||||||
-s | jq .status | wc -l
|
|
||||||
|
|
||||||
time seq 2000 3000 | xargs -P ${CONCURRENCY} -I {} curl -L -X POST \
|
|
||||||
"${QDRANT_URL}/collections/${COLLECTION}/points/recommend" \
|
|
||||||
-H 'Content-Type: application/json' --data-raw \
|
|
||||||
"{ \"limit\": 10, \"positive\": [{}], \"params\": { \"quantization\": \
|
|
||||||
{ \"rescore\": true, \"oversampling\": ${OVERSAMPLING} } } }" \
|
|
||||||
-s | jq .status | wc -l
|
|
||||||
```
|
|
||||||
|
|
||||||
Run this script with and without enabling `storage.async_scorer` and once. You
|
|
||||||
can measure IO usage with `iostat` from another console.
|
|
||||||
|
|
||||||
For our benchmark, we chose the laion dataset picking 5 million 768d entries.
|
For our benchmark, we chose the laion dataset picking 5 million 768d entries.
|
||||||
We enabled scalar quantization + HNSW with m=16 and ef_construct=512.
|
We enabled scalar quantization + HNSW with m=16 and ef_construct=512.
|
||||||
@@ -212,6 +184,6 @@ Therefore before you roll out io\_uring, perform the above or a similar
|
|||||||
benchmark with both mmap and io\_uring and measure both wall time and IOps).
|
benchmark with both mmap and io\_uring and measure both wall time and IOps).
|
||||||
Benchmarks are always highly use-case dependent, so your mileage may vary.
|
Benchmarks are always highly use-case dependent, so your mileage may vary.
|
||||||
Still, doing that benchmark once is a small price for the possible performance
|
Still, doing that benchmark once is a small price for the possible performance
|
||||||
wins. Also please
|
wins. Also please
|
||||||
[tell us](https://discord.com/channels/907569970500743200/907569971079569410)
|
[tell us](https://discord.com/channels/907569970500743200/907569971079569410)
|
||||||
about your benchmark results!
|
about your benchmark results!
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
@@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
export QDRANT_URL="<qdrant url>"
|
||||||
|
export COLLECTION="<collection name>"
|
||||||
|
export CONCURRENCY=4 # or 8
|
||||||
|
export OVERSAMPLING=1 # or 4
|
||||||
|
|
||||||
|
time seq 1000 | xargs -P ${CONCURRENCY} -I {} curl -L -X POST \
|
||||||
|
"http://${QDRANT_URL}/collections/${COLLECTION}/points/recommend" \
|
||||||
|
-H 'Content-Type: application/json' --data-raw \
|
||||||
|
"{ \"limit\": 10, \"positive\": [{}], \"params\": { \"quantization\": \
|
||||||
|
{ \"rescore\": true, \"oversampling\": ${OVERSAMPLING} } } }" \
|
||||||
|
-s | jq .status | wc -l
|
||||||
|
|
||||||
|
time seq 1000 2000 | xargs -P ${CONCURRENCY} -I {} curl -L -X POST \
|
||||||
|
"${QDRANT_URL}/collections/${COLLECTION}/points/recommend" \
|
||||||
|
-H 'Content-Type: application/json' --data-raw \
|
||||||
|
"{ \"limit\": 10, \"positive\": [{}], \"params\": { \"quantization\": \
|
||||||
|
{ \"rescore\": true, \"oversampling\": ${OVERSAMPLING} } } }" \
|
||||||
|
-s | jq .status | wc -l
|
||||||
|
|
||||||
|
time seq 2000 3000 | xargs -P ${CONCURRENCY} -I {} curl -L -X POST \
|
||||||
|
"${QDRANT_URL}/collections/${COLLECTION}/points/recommend" \
|
||||||
|
-H 'Content-Type: application/json' --data-raw \
|
||||||
|
"{ \"limit\": 10, \"positive\": [{}], \"params\": { \"quantization\": \
|
||||||
|
{ \"rescore\": true, \"oversampling\": ${OVERSAMPLING} } } }" \
|
||||||
|
-s | jq .status | wc -l
|
||||||
Reference in New Issue
Block a user