Luis;
1) You do not need 32g of memory - this is too large and will lead to long GC pauses as memory fills. 1g should be more than enough.
2) If you can scale horizontally - that is, run multiple nodes on each machine - and have the Gateway connect to each node as a load balancer would be ideal.
3) We highly recommend setting your Java options to turn off in memory logging (used by developers for debugging) and turn off the Scheduler (this has a known memory.leak found in 5.2 and fixed in 5.4)
-DLAC_USE_IN_MEMORY_LOGGING=false
-DLAC_SCHEDULING_DISABLE=true
note: if you need a scheduled task - setup a stand-alone instance for that task or use an external scheduler to post to LAC.
4) We are not sure of your configuration - but make sure that you are using an SQL database for
APIKEY storage so that each node can share the same credentials (unless the GW is using fixed APIKEY management).
5) Finally, LAC 5.2 should be able to handle 100-200 transactions per second per node on a 1g box. Remember - these are stateless servers so memory is not being consumed except when processing a request. So 2 nodes should be able to handle 15,000/minute. The performance link I posted above reminds us to measure the SQL query time for requests to optimize the response time between LAC and the SQL database. This step is usually done in the pre-release phase with in memory logging turned on and looking at the SQL response time for each query.
------------------------------
Principal Engineer
Broadcom
------------------------------
Original Message:
Sent: 05-27-2020 04:08 PM
From: Luis Alberto Huallpa Torre
Subject: how to know scale my LAC and my API Gateway considering the number of transactions?
Hi Tyler,
Until now our peak load is 7,000,000 transaction per day. Our transactions are get and post, 10% of them (15) are stored procedure and scripts.
Regards
Original Message:
Sent: 05-26-2020 08:42 AM
From: Tyler Band
Subject: how to know scale my LAC and my API Gateway considering the number of transactions?
Luis;
I would like to understand the expected 'peak load' before giving a standard answer. Also, what type of transactions will LAC be returning (e.g. mostly simple GET's or more complex PUT/POST with rules and JavaScript)? Using standard tools like JUNIT or CURL to test a specific REST request - you can measure the response time, for example:
for i in {1..10000}do#demo_full is the pre-defined APIKEY (security/apikey).curl -H "Authorization: CALiveAPICreator demo_full:1" "http://localhost:8080/rest/default/demo/v1/TestJS" -s -o /dev/null -w "%{time_total}\n" --keepalive-time 1000#sleep 1doneecho "done"
We would recommend upgrading to the latest release v5.4 and configure the Java startup options to reflect a pre-production setup. (see Performance and Configuration)
------------------------------
Principal Engineer
Broadcom
Original Message:
Sent: 05-23-2020 02:06 PM
From: Luis Alberto Huallpa Torre
Subject: how to know scale my LAC and my API Gateway considering the number of transactions?
Hi,
I would like to know how to scale my LAC and my API Gateway considering the number of transaccions for each component. at this point we have 2 nodes for LAC (32core, 32GB ram each one) and 2 nodes for API Gateway (8 cores, 32GB).
is this a good configuration??? maybe we should configure 4 nodes for each component or maybe 1 node for each component but upgrading the hardware.
there is any calculator to know how many nodes o the hardware requirements necesary considering 1M or 500K transactions per day.
Regards.
------------------------------
Luis Huallpa.
------------------------------