Using RDS Proxy doubles or triples average response times

0

When we swap over to routing our READ traffic to go through RDS Proxy our average response time (web app) goes from ~200ms to ~600ms. As soon as we swap back to using the Aurora cluster endpoint the average response time significantly drops. No other changes, the only change we make is the hostname for the DB.

Is this normal? Is this a sacrifice we have to make for connection management and faster failover?

See here https://i.imgur.com/Vi1zPoP.png it's painfully obvious when we swap over to route through the RDS Proxy.

  • RDS Proxy and Aurora MySQL cluster
  • Same region, same subnets, same VPC.
  • Aurora MySQL cluster 1x Write 1x Read, db.r5.large instances
  • ap-southeast-2 region
  • Running Aurora v2.10

The web application we're running is a standard PHP/Laravel web app. (php8, laravel 8)

Update Cloudwatch Metrics of the RDS Proxy (when in use)

https://i.imgur.com/WXv1qzw.png https://i.imgur.com/5U7zi9t.png https://i.imgur.com/imq1e3N.png

  • What language & db client in your web app are used to make these db queries?

  • JasonF, did you ever manage to fix your issue? We have a similar behavior where DB queries take roughly twice as long since we started talking to our aurora MySQL (1.x for us) through an RDS proxy.

  • Hi, similar to the above, we're experiencing the same issue - did you find a solution?

  • Anthony: on our side we didn't find a solution. While the doubling of latency seemed huge, the impact on our SLOs (and hence, on our users) was low, so we decided to continue using the proxy.

JasonF
asked 2 years ago3056 views
2 Answers
0

This is indeed strange behavior, Are you using IAM for authentication ? I am really curious if your connections are getting pinned and every call to the database has to get a new connection. There are couple of metrics that you can monitor that might give you some idea where the delay is coming from, DatabaseConnections and DatabaseConnectionsCurrentlyBorrowed to get the number of connections and connections in use, and DatabaseConnectionsBorrowLatency, DatabaseConnectionsCurrentlySessionPinned. These are available in cloudwatch https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.monitoring.html

AWS
answered 2 years ago
0

These all look good. I would suggest please open a ticket with support as they will have access to logs and all and can help troubleshoot the issue.

AWS
answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions