results: req_lru_size=2 gives tokio-epoll-uring 16k GetPage/s@110kIOPs std-fs: 9.5 GetPage/s @ 65k IOPS

RUST_BACKTRACE=1 ./target/release/pagebench get-page-latest-lsn --mgmt-api-endpoint http://localhost:15011 --page-service-connstring=postgresql://localhost:15010  --keyspace-cache keyspace.cache   --limit-to-first-n-targets 1000 --set-io-engine tokio-epoll-uring --set-req-lru-size 2 --runtime 2m

Biggest gain with lru_size from 0 to 1, yay.
Adding one more gives another 1-2k

cgroup mem.high unlimited
made sure global page cache is large enough to not have any misses

MAKE SURE TO WARM UP, IT TAKES A WHILE, STILL DON'T KNOW WHY WARMUP IS
THAT BADLY NEEDED

std-fs: 50% cpu, lot of iowait
2024-01-29T18:25:52.923572Z  INFO all clients stopped
{
  "total": {
    "request_count": 1194213,
    "latency_mean": "68ms 343us",
    "latency_percentiles": {
      "p95": "152ms 63us",
      "p99": "201ms 215us",
      "p99.9": "260ms 991us",
      "p99.99": "314ms 623us"
    }
  }
}

tokio-epoll-uring: 100%cpu utilization
Disk isn't saturated.
We're CPU bound here.

{
  "total": {
    "request_count": 1927700,
    "latency_mean": "43ms 11us",
    "latency_percentiles": {
      "p95": "83ms 263us",
      "p99": "101ms 887us",
      "p99.9": "124ms 991us",
      "p99.99": "147ms 583us"
    }
  }
}
This commit is contained in:
Christian Schwarz
2024-01-29 18:22:18 +00:00
parent 49a5e411d6
commit 6753ff089c

Diff Content Not Available