Data-as-a-Service, Business Service, etc Energy Telecom – Include Tier1 Telco Op. Infrastructure Retail / E-Commerce Media Health / Nutrition Transport GVT. / Administration Education Music Finance Charities 600 APIS POWERED BY 3SCALE
FOR YOUR API • Average throughput in requests per second • Peak throughput (what is the most traffic that you get over a certain period?) • Throughput distribution – by API endpoint (do you have any endpoint that gets substantially more traffic than any others?) – by users (a few generate most traffic or is it more evenly distributed) 6
case JMeter functional testing of complex user flows in a web application wrk find what is the maximum load your API can handle Vegeta test how an API behaves at a steady rate of X reqs/s Loader.io SaaS tool. Similar in target to wrk but with zero setup and nice reports Blazemeter SaaS tool, based on JMeter (allows you to upload JMeter test plans and run them from the cloud) LOAD TESTING TOOLS COMPARED
THE NUMBER OF AVAILABLE SIMULTANEOUS CONNECTIONS Increase range of ports allowed for TCP traffic. Default: [1,024 - 5,000] (net.ipv4.ip_local_port_range) Increase default number of available file descriptors per process (ulimit) Make connections available for reuse as quickly as possible by reducing the default duration of the TIME_WAIT state (net.ipv4.tcp_fin_timeout) If your API server has concurrency problems, having Nginx (or an API Gateway) in front and enabling keepalives can help reduce the number of connections: http://nginx.com/blog/http-keepalives-and-web-performance/ 13
Whale aka “Lifting a Dreamer” by Yiying Lu http://www.whatisfailwhale.info/ • http://pixshark.com/people-walking-up-stairs-clipart.htm • Fail Whale Pale Ale label by Brian Cook, Manchester, Connecticut, USA http://www.whatisfailwhale.info/ 18 • http://gwan.com/en_apachebench_httperf.html • https://www.usenix.org/legacy/publications/library/proceedings/usits97/full_papers/banga/banga.pdf • http://www.hpl.hp.com/research/linux/httperf/wisp98/httperf.pdf • http://making.fiftythree.com/load-testing-an-unexpected-journey • https://engineering.gosquared.com/optimising-nginx-node-js-and-networking-for-heavy-workloads • https://support.3scale.net/overview#how-it-works • http://www.3scale.net/ RESOURCES