Performance Testing

Not applicable

My performance team wants to go ahead with performance testing of the API proxies on a fresh AIO profile of apigee edge to measure TPS against some numbers.

Do you think this is a good approach ? Or should we first select a profile ,how to select a apigeeEdge setup profile ?

Regards

Arpit

0 3 1,699
3 REPLIES 3

Hi @Arpit Sharma I would not recommend performance testing with the All In One profile. Apigee Edge Private Cloud is architected to be high performance, high availability and scalable but when you do AIO installation you are will not have any of those.

AIO is best suited for training/familiarization with Apigee Edge, functional/feature demonstration, proxy development and early stage testing scenarios.

Now the harder question is what profile to recommend. In general terms, the more nodes you use, the better the performance will be, but it will also depend on the performance characteristics of the actual hosts. You can get a good idea of that from the Apigee Edge Install and Configuration guide in the Hardware Requirements section.

It will depend a lot on your API Proxy scenarios as well.

For example, to start with if you are doing passthrough proxies, then a 5-host installation could get you going.

If you want to test API Proxies that are doing a lot of database activity, e.g. creating and verifying access tokens, storing and accessing key value maps, caching then you should consider installation profiles that give you more Cassandra nodes.

Also for caching scenarios and scenarios involving java or node callouts, you should look to have more message processors and giving them more memory.

So from all of this, there is no easy answer, it will take some tuning to your specific use-cases to determine the best setup. If you are able to share more specifics on your use-cases, we may be able to provide more specific advice.

If this has answered your question please click the accept link and if not, please expand further on your question.

Performance Test

It is always important to define the key performance goals before beginning any performance test. Our experience shows that with well-defined, measurable performance goals, the success rate is much higher and it also ensures a well-defined path for executing the tests.

A simple API performance measurement matrix could be as follows:

APIFunctionalityWeightConcurrent UsersPayload SizeAvg LatencyThroughput (per sec)
ProductsKey , Quota20%1005 KB10 ms4000
StoresToken, Quota, xml-to-json30%50100 KB15 ms3000
-----------
-----1 MB------
All100%10012ms2500

Hardware and Software

Another challenge we need to address is the Hardware and Software --- Often times we switch between hardware while measuring the performance, which is not recommended as you might see an inconsistent and inaccurate performance numbers.

One Machine, One Job

It is recommended NOT to have client, target backend or any other Edge component (management server, analytics, router, message processor etc.) run on the same server as the MP. The results captured in such a set up might not be accurate and can be ignored.

AIO is not the right configuration for performance test .

A typical Apigee Performance test environment may look like the one below : -

perf_test_config.png

However actual configuration depends upon use case scenario.

Can the performance testing be extended into Fault Tolerant testing also? For example, taking down some nodes in dc-2 in a 12-node implementation (non-prod) and showcase how performance testing is going well even all traffic goes to dc-1 nodes. I am considering the apib tool published in Apigee github URL at https://github.com/apigee/apib. Thanks in advance.