In this article:
Setting Up Foresight Analytics Platform
Working with Repository Objects
To improve performance of Foresight Analytics Platform, use hardware and software settings.
Several BI servers of Foresight Analytics Platform can be used to deploy a fault-tolerant cluster. This will require balancer, state server and several BI servers configured to work with the same state server.
To improve Apache2 BI server performance, set up:
Environment variables. To reduce peak memory consumption in Foresight Analytics Platform in Linux OS, add additional environment variables:
PP_RETMEM=1
MALLOC_MMAP_THRESHOLD_=8192
PP_RETMEM_CO=1
MALLOC_ARENA_MAX=1
NOTE. The use of the MALLOC_ARENA_MAX=1 variable can reduce memory consumption with BI server but may worsen performance. Test application system performance when the variable is used.
Number of work threads in each process. Set the number of work threads within one Apache2 instance to be not greater than the doubled number of users who should work on this computer. If the recommended value is exceeded, it may result in the memory overuse, though if the number of threads is too small, it may result in performance slowdown. The number of work threads in each process is calculated individually for each application system based on load testing results.
A database and BI server should be located within one local network. Otherwise it may result in significant performance slowdown because of large overhead expenses on SQL queries.
The PostgreSQL/Postgres Pro configuration file contains minimal settings by default. Increase values of the max_connections, work_mem and shared_buffers parameters according to hardware characteristics of the server, on which DBMS is installed. Set the max_connections parameter as a sum of the maximum number in connection pools on each cluster node with the safety margin 25%.
Foresight Analytics Platform enables the user to use advantages of SMP systems and can use all available processor cores. User queries are executed by multiple threads within application server. Threads are automatically distributed to available processor cores by the operating system. This helps distribute computation load.
When logging in to the system and working with Foresight Analytics Platform, the system requests features on demand. To speed up communication with the license server:
Specify the specific license server URL to search for a network license in Windows OS:
Create the LSFORCEHOST system variable and set licenser server URL as a variable value.
Select the Check for Server License Using This Host radio button in the License Search Settings dialog box and set license server URL in the corresponding box.
NOTE. The LSFORCEHOST system variable has a higher priority than the License Search Settings dialog box.
Use licensing service to parallel requests for network license from BI server to license server.
Minimize the number of connected external drives on the computer with BI server, such as USB flash drives, USB-HDD, CD-ROM, and so on. When working with licenses, one gets a list of all connected devices and the are addressed .
When administrating Foresight Analytics Platform in the security manager:
Select the Create Subjects with Lazy Loading checkbox to speed up loading of security subjects if the system contains over 200 subjects.
Separate access permissions to objects via groups of users. If it is assumed to set up access permissions for over 200 groups, use discretionary access control method with attribute-based access control method.
If domain or integrated domain authentication is used, create domain groups without explicit adding each user account.
NOTE. Domain group support is available if there are groups as roles and users included in these roles on the DBMS level.
To speed up opening of repository objects and to work with them:
Select the Automatic Connection checkbox in database properties and set user name and password in corresponding boxes if domain or integrated domain authentication is used for repository connection, and the Override Database Connection Settings checkbox is deselected in database properties. Therefore, when relational objects are opened, connection time is reduced for the database, from which data is loaded.
Select the Lazy Loading of Object Descriptors checkbox in repository connection settings if the repository contains a number of objects.
Select the Cache System Tables on Server Startup checkox in repository connection settings. Caching allows for improving system performance and speeding up opening of complex reports that use a number of data sources in the web application by reducing the time of reading system tables from database.
IMPORTANT. Caching of system metadata tables is allowed only in the production version. When caching is used, data in system metadata tables must not be changed.
Make sure that when setting up elements layout in the table one does not use cell autofit. Set cell height manually using the ITabSheet.DefaultHeight property, cell width - using the ITabSheet.DefaultWidth property. Cell size is used by default on creating new rows and columns.
Take into account features of working with tables In Foresight Analytics Platform development environment.
If Foresight Analytics Platform Extensions are installed, to improve performance:
Make sure that on working with registry form in the Interactive Data Entry Forms extension all dimensions of cubes created automatically are bound to data sources fields.
Use virtual cells and set up cell size manually in the Interactive Data Entry Forms extension:
Select the Use Virtual Cells checkbox in the table area wizard.
Make sure that cell autofit is not set in the table area wizard. Set cell height manually using the ITabSheet.DefaultHeight, property, cell width - using the ITabSheet.DefaultWidth property. Cell size is used by default on creating new rows and columns.
Use the ?: conditional operator instead of the Iif function on setting up calculation formulas in the Calculation Algorithms extension.
Start execution of business processes built in the Business Process Management extension, in a separate thread using the IForeThread.Start method on application development.
Disable logging in Foresight Analytics Platform or hide debug info output:
Create the Log section in the registry key [HKEY_LOCAL_MACHINE\Software\Foresight\Foresight Analytics Platform\10.0].
In the section create the WriteToDebugOutput parameter of the REG_DWORD type with the 0 value.
Connection pool limits the number of connections between BI server instance and DBMS. The connection pool limit is set to 50 by default. Set pool limit manually to the required value depending on application system requirements. Pool setup is read by each BI server process separately.
Set idle time without requests, after which the repository session is broken using the TimeoutSec parameter in the registry key [HKLM\SOFTWARE\Foresight\Foresight Analytics Platform\10.0\PP\BIS\System\Session]. The use of large time values can result in increased memory consumption; the use of the -1 infinite value can result in memory leaks.
If an antivirus software is installed in a user computer, add exceptions:
In Linux OS for the /opt/foresight root folder where BI server is installed.
In Windows OS for the folder C:\Users\<user name>\AppData\Local\Foresight\Foresight Analytics Platform, which stores cache.
Make sure that processes used by Foresight Analytics Platform are not scanned permanently by antivirus. The processes are: BI server, web server, license server, task scheduler. Take into account that Foresight Analytics Platform can use other processes started by the user, for example, on Fore application code execution or on connecting additional modules: Python, Java, R, and so on.
To speed up work of Foresight Analytics Platform in Windows OS:
Open the Windows control panel.
Go to the Power Options section in the System and Security category.
Select the High Performance radio button:
After executing the operations the work of Foresight Analytics Platform is sped up.
Make sure that debugging and profiling tools: Intel Vtune, DebugDiag, AppVerifier, Valgrind, and also antiviruses, are not used on servers in the production environment.
See also: