Mar 15 2018
PDF Converter task sizing and auto scaling
With FarGate, you have to specify a task size:
Load testing with JMeter, I have found that 2 vCPU works well for the Task CPU setting. The minimum Task Memory you can set for 2 vCPU’s is 4GB. (The PDF Converter doesn’t use that much RAM, so it would be good to be able to specify just 1GB, particularly since FarGate pricing includes a cost per GB)
For my load testing (32 parallel conversions), served by 2 tasks:
So, an average of 9.8 sec per conversion (based on a range of documents, some short/quick, others long/slow).
With FarGate, you can set a service to auto-scale, under CPU load or based on incoming requests.
So let’s improve on those response times, by auto-scaling the number of tasks available for processing the incoming PDFs.
How to do this? FarGate tells me my CPU utilization was:
So let’s “update” the service to set auto-scaling to happen at 40%:
Re-running the load test, here are the results:
You can see the response time better than halved, and throughput doubled.
At the end of the test, I can see that it auto-scaled to 10 tasks:
Looking at the load balancer target group, you can see it went from 2 tasks to 5 tasks to 10:
(the test sarted at 23:13 and finished at 11:28; scaling in occurred some time after the test concluded).
You can see from the graph below that the average response times drop as these extra tasks become available.
Running the load test one last time, with 8 tasks in place from the start:
we have an average response time of 2.2 seconds, and we’re converting 12.48 documents per second.
In summary, configuring the cluster so that each task has 2 vCPUs, and auto-scaling when CPU utilization hits 40%, looks like a good place to start tweaking your own instance.
No Responses so far
Comments are closed.
Comment RSS