Cycle Client Attribute
Following are the "Cycle Client" attributes (used for grid Replenishment) defined inside Cycle client's configuration files (Cycle.properties).
Cycle.batchSize
Keep batch size larger in the range of 5K-10K or even more, if heap is not being compromised. Remember heap should be at least 30% free.
Cycle.groupSize
Keep groupSize lower, usually under 10. The groupSize will group activities for a single thread submission.
Cycle.period
Keep this property lower, usually set to 5 seconds. This will let Cycle sleep for 5 seconds and retry replenishing grid every 5 seconds.
Cycle Agent Attributes
Following are the "Cycle Agent" attributes defined inside Cycle agent's configuration files (Cycle.properties).
grid.taskSubmissionThreadPoolSize
Submission threads for submitting cycle.groupSize of activities to the grid.
Set this property considering how much load, the total number of processing threads can take in the grid, don’t set this by individual JVM, set this by total number of threads in a cluster. This property is to set the throttling of activities to the grid.
Example:
If total number of processing threads in a coherence cluster is 100, then each processing thread can process, a single activity in a given instance of time, if hyper threaded core, it can take 2 activities per thread per instance of time. Assuming core is hyper threaded, each processing thread in parallel can process 2 activities in an instance of time.
Hyper threaded Cores
Set submission thread = total number of processing thread in a cluster/ Cycle.groupSize * 2
Non-Hyper threaded Cores
Set submission thread = total number of processing thread in a cluster / Cycle.groupSize
Note: When running Scheduled Valuation activities, ensure to set
- scheduledValuation.groupSize
- scheduledValuation.period
- scheduledValuation.batchSize
Appropriately based on the desired workload. Scheduled Valuation activities are
compute intensive and can usually take more compute power per thread
execution, ensure not to overload threads with higher
scheduledValuation.groupSize. Ideal recommended setting is less than 5.
Consider increasing if threads are idling.