How many TPS on 24-cores anyone can help?

hsnbilgen
Participant III
I know 700 Transaction Per Second on 8-cores but i would like to know how many TPS on 24 cores can anyone help me about that?
1 6 4,437
6 REPLIES 6

sarthak
Participant V

Number of Cores to TPS varies quite a bit based on the policies used,backend responsiveness, payload size etc. If you have done a benchmark with your setup and have achieved a 700 TPS on 8 core then thats great. Else I have seen the number going much higher for some customers as well , sometimes even lower.

Since we do not officially support a 24 core license hence we do not do any benchmarking on 24 core machines. But our testing have shown that between 4 core and 8 core there is an increase of 1.5-1.7 times the throughput , assuming memory is also increased proportionally. Thats the only number I can think of to estimate how much tps a 24 core machine might support. I guess you have to run a test on your setup to know more for sure.

Sorry could not be of more help.

hsnbilgen
Participant III

Thank you for your reply but I need that interval i don't have any Transaction to demonstrate this 24-cores. I want to know to prepare my notes for apigee. I am fresh learning the implementation of API Management on APIGEE. Anyone?

Not applicable

As @sarthak mentioned benchmarking varies by the following factors:

  • Type of policies & their combination of usage
  • Number of Service Callouts
  • Payload size (memory bound)
  • Number of Javascript / node.js policies (these policies are cpu bound)
  • Network bandwidth
  • Amount of caching (memory bound)
  • Traffic composition type (memory vs cpu bound)

If your traffic composition is mostly memory bound then you will achieve more TPS by increasing the memory vs if its cpu bound then you need more cpu to get better TPS. If you have achieved 700 TPS on an 8 core system, the server side metrics will be helpful to determine the type of traffic. Here are some of the metrics might be of interest:

  1. Server side metrics like: load, cpu, memory, # of close waits, # of time_waits on MP & Router
  2. Load on Cassandra
  3. If you have ELB in front of routers, check ELB latency

Sorry, there is no straight forward answer but I am hoping that this will help you to move towards the right direction.

Not applicable

While I don't have a better answer for you than the previous posters, I can tell you that you're running an on-premises version of Apigee it's actually possible to run more than one message processor on the same machine. This will likely allow you to better utilize larger machines with more memory.

I don't have a good documentation pointer, but check out the section entitled "Multiple message processors on a single host" in our Release Notes at http://apigee.com/docs/release-notes/content/14010000-apigee-edge-premises-release-notes.

hsnbilgen
Participant III

Thank to you Chris. I need that demonstrate so. But the running with multiple MP isn't that make the memory utilization too high? It will increase memory utilization too much right?

Not necessarily. 24-core machines such as what you've described generally have very large amounts of memory... Java's "sweet spot" for heap size is about 12 GB - balancing big memory with optimal garbage collection times - so having multiple message processors on the same machine will both enable you to use an optimal heap size and also take maximum advantage of your machine.

One other minor thing to consider: is this 24-core machine you described physical or virtual? If it's virtual you'll have lower throughput than an equally-sized physical machine because of the virtualization itself and (possibly) because of contention for resources from other VMs.