benchmarks icon indicating copy to clipboard operation
benchmarks copied to clipboard

Benchmark Supabase (fly.io)

Open kiwicopple opened this issue 5 years ago • 6 comments

Chore

  • Running Database on Supabase
  • Attached PostgREST directly to the Supabase database
  • Running benchmarks directly to the PostgREST (no kong)

Results

Instance vCPU RAM Price Read Write Comments
AWS t3a.micro 2 1 $6.80 303/s 307/s
Fly micro-1x shared 128MB $2.67 171/s 235/s Reached request duration threshold
Fly micro-2x shared 512MB $8 206/s 277/s

Fly config

app = "postgrest"

[build]
  image = "postgrest/postgrest"

[[services]]
  internal_port = 3000
  protocol = "tcp"

  [services.concurrency]
    hard_limit = 25
    soft_limit = 20

  [[services.ports]]
    handlers = ["http"]
    port = "80"

  [[services.ports]]
    handlers = ["tls", "http"]
    port = "443"

  [[services.tcp_checks]]
    interval = 10000
    timeout = 2000

Read benchmarks

image

Write benchmarks

image

kiwicopple avatar Nov 20 '20 15:11 kiwicopple

Just to make sure I am running with the same amount of data in the benchmark database, and on the same hardware, here is my run for Supabase:

Read

image

Write

image

kiwicopple avatar Nov 20 '20 15:11 kiwicopple

TLDR

Setup:

  • AWS: t3a.micro (Kong -> Postgres) -> database (EC2 t3a.micro)
  • Fly: (Postgres) -> database (EC2 t3a.micro)

Read

  • AWS: 303/s
  • Fly: 206/s

Write

  • AWS 307/s
  • Fly: 277/s

Notes

  • Running from my local machine, so latency included
  • AWS is going through cloudflare (DNS only), and then Kong, then Postgrest.
  • Strange that read is slower than write (?)
  • All systems deployed in Singapore

kiwicopple avatar Nov 20 '20 16:11 kiwicopple

why is your AWS run so much slower than my results

awalias avatar Nov 22 '20 12:11 awalias

I was wondering the same actually. I just ran this code against our Benchmarks project. Is that how you did it?

kiwicopple avatar Nov 22 '20 12:11 kiwicopple

Benchmarks on Fly micro 1x: not a huge difference in throughput, but it did result in some duration thresholds to drop out

image

image

kiwicopple avatar Nov 24 '20 04:11 kiwicopple

I'll add a comparison table to the top comment

kiwicopple avatar Nov 24 '20 04:11 kiwicopple