minio / sidekick

High Performance HTTP Sidecar Load Balancer
GNU Affero General Public License v3.0
540 stars 82 forks source link

Slower benchmark with Sidekick #89

Closed choyuansu closed 1 year ago

choyuansu commented 1 year ago

I'm using minio/warp to benchmark my MinIO deployment. I tried connecting to the storage nodes directly vs. using Sidekick, and the results from using Sidekick is much slower compared to connecting directly (1200 MiB/s vs 500 MiB/s).

Expected Behavior

I expect the benchmarks to have similar speed whether I using Sidekick or not.

Current Behavior

Using Sidekick results in slower speed.

Possible Solution

No idea.

Steps to Reproduce (for bugs)

  1. Assume 4 storage nodes minio{1...4}.example.com:9000.
  2. Benchmark w/o using Sidekick:
    warp mixed --host=minio{1...4}.example.com:9000 --access-key=ACCESS_KEY --secret-key=SECRET_KEY --autoterm
  3. Benchmark using Sidekick:
    warp mixed --host=localhost:8000 --access-key=ACCESS_KEY --secret-key=SECRET_KEY --autoterm

Context

I'm trying to measure the throughput for my MinIO deployment.

Your Environment

klauspost commented 1 year ago

(followup on slack)

After inspecting the code, seems like sidekick is using round-robin load balancing by default, and warp balances based on the number of requests for each node. After setting warp to use round-robin, it produced similar results.

Would be fixed by #16