Skip to content

Slow responese on /assets/{asset}/addresses endpoint. #3

@Naiglos

Description

@Naiglos

Problem Description

Querying /assets/{asset}/addresses endpoint response time ranges form 7 to 35 seconds.

curl -w "@curl-format.txt" -o /dev/null -s "http://localhost:3000/assets/{$asset}/addresses"
     time_namelookup:  0.000014s
        time_connect:  0.032365s
     time_appconnect:  0.000000s
    time_pretransfer:  0.032393s
       time_redirect:  0.000000s
  time_starttransfer:  31.020171s
                     ----------
          time_total:  31.020421s

Environment

Hardware

  • Dedicated server
  • AMD ryzen 9 5950x
  • 128gb ddr4 ecc
  • 2x nmve ssd 3.4tb software RAID 1

Software

  • Debian 11.7
  • Docker version 23.0.5

Applications version

  • Cardano DB Sync 13.1.0.2
  • Cardano Node 1.35.5
  • PostgresSQL 15.2
  • Blockfrost-backend-ryo 1.5.0

Applications specific settings

  • All running in docker.
  • Resource limits are in place
  • PostgresSQL is limited to 12 CPU and 64gb RAM
  • Blockfrost-backend-ryo is limited to 4 CPU and 8GB RAM
  • Cardano Node limited to 4 CPU 24gb RAM
  • Cardano DB Sync limited to 4 CPU 24gb RAM
  • PostgresSQL settings are:
shared_buffers = 16GB
effective_cache_size = 48GB
maintenance_work_mem = 2GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 500
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 2796kB
min_wal_size = 4GB
max_wal_size = 16GB
max_worker_processes = 12
max_parallel_workers_per_gather = 6
max_parallel_workers = 12
max_parallel_maintenance_workers = 4
  • Indices mentioned in README are added.

Troubleshooting steps taken

  1. Directly executed query form source code got same result.
  2. Executed query using EXPLAIN (ANALYZE, COSTS, VERBOSE, BUFFERS, FORMAT JSON) Can be viewed here

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions