Sunday, May 12, 2019

HCM Payroll & Extracts Performance


HCM Extracts and Payroll Performance can differ due to many reasons. One of the key areas would be multi-threading.  In Fusion HCM, not all processes are enabled for multi-threading, i.e., certain processes can be enabled for multithreaded by running those transactions to run in parallel to improve the performance. A sub-optimum level for an environment can be set as parameter 1, and then this should be increased.
HCM Extracts and Payroll settings for threads and chunks size parameters are set in the Manage Payroll Process Configuration Task. Whereas for Benefits the navigation would be Navigator - Benefits -  Evaluation and Reporting > Manage Batch Parameters.
 
Threads are a number of parallel workers that executing the job at the same time. Whereas, a chunk size is a number of employees processed under the worker, before retrieving the next chunk.
Let us consider some examples on threads and Chunks over the performance of Payroll:
Test Case 1: In an organization of 24000 employee’s payroll, configured to run using the 60 threads and 600 chunks, payroll takes 5.2 Hours to complete
In the above case, Payroll uses only 40 threads with the chunk size of 600 on 60 threads for the size of 24000 employees, i.e. (24000/600 = 40 threads). The remaining 20 threads would be not performing any task. Runtime for the payroll for 24000 employees reflects the 40 threads. For better performance, it would be better to drop the chunk size to 400.
Test Case 2: when the system set to use 15 threads and 20 chunks for the same set of employees (i.e., 24000 employees), payroll cycle took 7.9 Hours to complete.
In the above case, each worker thread would process nearly 80 employees per chunk, i.e. (24000/(15*20) = 80).  By increasing the thread count will improve the performance by leaving the chunk size to default (20) or could set to 50.

Logging is very important to get most of the diagnostic information related to either Payroll or Extracts batch processes, which could be enabled through UI. By enabling the logging, these processes will have a detrimental effect on performance. Hence, logging should be enabled during the investigation phase and if required for a small sample of employees/data. Logging parameter should be removed, once all the required information is gathered.For Benefits processes, there is an Audit Log parameter which is used to troubleshoot by creating extra diagnostic information. Consider what this has been set to if experiencing performance issues.
More information on Payroll Logging can be found on Document ID 1536245.1