Generating Some Load

February 23, 2020

<< >>

Yesterday I finally managed to generate some load to my website. It was not the first time of load testing for me, but one of the first ones outside of work. JMeter was the first tool I ever used for load testing roughly 10 years ago and it at least used to be a tool for true professionals. JMeter’s UI was not exactly designed for humans back then. If you wanted a tool that was a bit easier to use you had to pay quite a lot of money for it. I still remember some interesting discussions around purchasing licenses for HP LoadRunner which quite often has been the tool of choice, but didn’t exactly come cheap.

As I am doing a low cost website I definitely don’t want to spend money on load testing tool, but as I am doing this just for fun I would like the tool to be rather easy to use. Fortunately there nowadays is a option called Neoload. They actually offer a free license that can be used to test with up to 50 virtual users.

alt text

I tried to achieve 50 requests/s load on my website, but apparently my 4G network was not able to handle this as Neoload kept giving we network errors after ca. 10 request/s. Maybe I need to check how JMeter looks nowadays just to validate if the issue is with Neoload or my network. Anyway I was able to do 1 hour run with rather constant 11 request/s load.

alt text

If we calculate together the attempts to reach 50 requests/s and the successful 1 hour run of 11 requests/s, I managed to do ca. 109 000 requests yesterday to my website according to CloudWatch metrics for CloudFront distribution.

On my AWS Billing I can see total of 110 737 requests this month and 1,2 GB of data transfer out. Which is almost completely due to my load tests yesterday. There are no charges on the bill other then CloudFront and Route 53.

In my previous post I assumed that on request would cause 10kB of data transfer out. With the numbers above we can calculate that during these tests number was actually 11kB. This heavily depends of course on the content of the site. If there are more e.g. images, then data transfer out will be higher. But current content on my site quite accurately matches my initial assumption.

Load tests yesterday cost me $0.29 and total month to date costs are up from $1.24 to $1.53 (prices include Finnish VAT 24%). Constant 1 hour 11 requests/s test generated 45 000 requests. Currently my “kill switch” is set to allow this load as I changed the threshold to be 5000 requests during 5 minute period. Let’s check what AWS Simple Monthly Calculator gives with the scenario that I would run this same load for whole month.

With this scenario I would be billed for 367 GB/Month for data transfer out and average object size would be 11 kB. Total costs on the bill would be $86.43 based on the calculator.

There are some companies that offer similar capabilities as CloudFront but with cheaper price tag for individuals like me. One of them is CloudFlare which offers a free plan with no limits on the amount of bandwidth site visitors use.

Maybe I can make my low cost website even lower cost by routing the traffic through CloudFlare? In order to test this I set up my other domain to route traffic through CloudFlare. If you access my site using address https://www.arajuuri.fi, your traffic will go to CloudFlare. There is also the upside that I can save $ 0.62 per month when I remove that domain from Route 53 as CloudFlare free plan includes DNS.

<< >>

comments powered by Disqus