1. Documentation /
  2. Benchmarks

Benchmarks

API Load/Speed Test

↑ Back to top

Test Description

↑ Back to top

The ab – Apache HTTP server benchmarking tool was used to test the WooCommerce API Manager API Status function in three test cases. All tests were performed using an HTTPS connection which is much slower than an HTTP connection.

  1. 500 API requests with 10 request concurrency.
  2. 500 API request with 1 request concurrency.
  3. 500 API request with 100 request concurrency.

Server Configuration

↑ Back to top
  • Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz, 2 cores
  • CentOS Linux 7.6.1810
  • 2 GB Ram
  • Web server is Nginx 1.16.1 setup for HTTP/2
  • PHP processor is PHP-FPM
  • PHP version 7.3.9
  • MySQL version 5.7.27-log
  • WooCommerce version 3.7.0
  • WordPress version 5.2.3
  • WooCommerce API Manager version 2.2.3
  • No caching was used. (Imagine if caching was used)
  • SSD hard drive that comes standard on DigitalOcean servers. This costs $15/month.

The server used in the test is the live server at toddlahman.com, which has a large database of customers, so the test could reflect a real-world result.

Test Results

↑ Back to top

Response times for requests are measured in milliseconds. A millisecond is a thousandth of a second, or 0.001 seconds, so 0.001 seconds is 1 ms (millisecond).

Test 1 result:

  • 500 requests with 10 requests concurrency.
  • Time to complete test was 19.601 seconds.
  • Mean time per request of 39.023 ms (milliseconds), which is 0.039023 seconds.
  • Mean requests per second 25.51, which is 1,530.6 per  minute, or 91,836 per hour.
  • Zero failed requests.

The time factor depends greatly on the slowness of HTTPS encryption.

Test 2 result:

  • 500 requests with 1 request concurrency.
  • Time to complete test was 38.382 seconds.
  • Mean time per request of 76.765 ms (milliseconds), which is 0.076765 seconds.
  • Mean requests per second 13.03, which is 781.8 per  minute, or 46,908 per hour.
  • Zero failed requests.

The time factor depends greatly on the slowness of HTTPS encryption.

Test 3 result:

  • 500 requests with 100 requests concurrency.
  • Time to complete test was 19.105 seconds.
  • Mean time per request of 38.211 ms (milliseconds), which is 0.038211 seconds.
  • Mean requests per second 26.17, which is 1,570.2 per  minute, or 94,212 per hour.
  • Zero failed requests.

The time factor depends greatly on the slowness of HTTPS encryption.

The WooCommerce API Manager performed extremely fast, and reliably under heavy loads without caching enabled. In fact, the WooCommerce API Manager performed better as the request load increased, and at a rate of between 46,908 to 94,212 requests per hour, or 13.03 to 26.17 requests per second. It is safe to say the WooCommerce API Manager can scale to meet the needs of the smallest to the largest WooCommerce store, but would perform even better with caching enabled.