Need help with aws services monitoring on cloudwatch

0

Hi,

This is my first post, I hope this is the correct topic for the post.

I'm doing stress tests on a microservices architecture deployed in a aws environment and I have found some throughput contention problem.

I'm using blazemeter as performance testing tool, which have integration with aws cloudwatch metrics. My metrics for aws resources are

  • Amazon Elastic Block Store
  • Elastic Load Balancing
  • Amazon VPC
  • Amazon Elastic Compute Cloud

This is the call scheme of my test

Blazemeter -> AWS LB -> ingress-nginx -> SpringBoot service

The scenario that I'm testing is as follow

Number of users: 399.

Number of endpoint/request acceded: 1

Think Time: 4 seg

Rampup: 20 min.

Hold Load: 5 min.

With this scenario, the maximum expected throughput should be 99,75 hits / seconds, but I'm only get about 65 hits / seconds.
The average response time in the 90 percentil for this test is about 93ms and the errors rate is 0%.

Looking at the springboot service resources usage, I see that it has many idle threads that can resolve the load.
It doesn't seem that there are no problems in the ingress-nginx resources usage neither.

Both springboot service and ingress nginx don't show high consumptions in system resources.

What metrics could I look at on cloudwatch to rule out or confirm that the bottleneck is not in any of the aws resource that I use. .

I can share with you additional information if needed.

Thank in advance.

asked 4 years ago267 views
2 Answers
0

Hello,

How are you measuring the number of requests generated as compared to the number reaching your service?

A load balancer distributes incoming application traffic across multiple EC2 instances in multiple Availability Zones. How many EC2 are registered with the ELB?

Some key questions you’ll want to answer:

  1. How many requests/sec are being generated by Blazemeter.

  2. How many requests/sec are seen by the ELB. There are ELB traffic metric in CloudWatch as documented here: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-cloudwatch-metrics.html#ViewingDataUsingCloudWatch

  3. How many requests are being seen by your application. You should be able to get this data from the ingress-nginx log.

Best,
Kevin

AWS
answered 4 years ago
0

Hello Kevin,

Thanks for your reply and sorry for my delay in the feedback.

After a few test with different throughtputs and conditions I find out that the problem was in the Blazemeter side due to a misconfiguration in the locations that generate the load.

answered 4 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