Oracle Analytics Server Infrastructure Tuning Guide v2
Oracle Analytics Server Infrastructure Tuning Guide v2
Disclaimer:
• All tuning information stated in this guide is for orientation only. Tuning is an iterative
process; every modification has to be tested and its impact should be monitored and
analyzed.
• Before implementing any of the tuning settings, it is recommended to carry out end-to-
end performance testing that will also include obtaining baseline performance data for
the default configurations, making incremental changes to the tuning settings and then
collecting performance data. Otherwise it may worsen the system performance.
1
TABLE OF CONTENTS
INTRODUCTION ................................................................................................................... 3
1.0 PERFORMANCE OVERVIEW .................................................................................... 3
1.1 INTRODUCTION TO ORACLE® ANALYTICS SERVER PERFORMANCE ........................... 3
1.2 PERFORMANCE TERMINOLOGY ................................................................................... 3
1.3 UNDERSTANDING KEY PERFORMANCE DRIVERS ........................................................ 4
2.0 TOP TUNING RECOMMENDATIONS FOR OAS ................................................... 5
2.1 TUNE OPERATING SYSTEMS PARAMETERS ..................................................................... 6
2.1.1 Linux Tuning Parameters ..................................................................................... 6
2.1.2 Windows Server 2016 / 2019 Tuning Parameters................................................ 9
2.2 TUNE ORACLE® WEBLOGIC SERVER (WLS) PARAMETERS ......................................... 10
2.3 TUNE 64BIT JAVA VIRTUAL MACHINES (JVM) ............................................................ 16
2.3.1 Tuning 64bit Oracle® JVM ................................................................................ 16
2.4 TUNE HTTP SERVER PARAMETERS .............................................................................. 18
2.4.1 Oracle® HTTP Server (OHS) Tuning ............................................................... 18
2.5 TUNE HTTP SERVER COMPRESSION / CACHING ........................................................... 19
2.5.1 Oracle® HTTP Server (OHS) ............................................................................ 20
2.7 TUNE DATABASE PARAMETERS.................................................................................... 22
2.7.1 Web Catalog Objects in Database ....................................................................... 22
3.0 PERFORMANCE MONITORING AND TESTING OAS ....................................... 23
3.1 BUILT-IN BI METRICS FOR PERFORMANCE MONITORING ............................................. 23
3.2 DIAGNOSING AND RESOLVING ISSUES IN ORACLE ANALYTICS SERVER ....................... 26
3.3 PERFORMANCE TESTING ORACLE ANALYTICS SERVER ................................................ 26
3.4 HOW TO ANALYZE HOST SERVER METRICS ................................................................. 27
4.0 TUNING OAS COMPONENTS .................................................................................. 30
4.1 ORACLE® BI PRESENTATION SERVICES COMPONENT .................................................. 31
4.2 ORACLE® BI SERVER COMPONENT ............................................................................. 32
4.3 ORACLE® JAVAHOST COMPONENT.............................................................................. 37
4.4 ORACLE® BI SCHEDULERS COMPONENT ..................................................................... 39
2
INTRODUCTION
This document is written for people who monitor performance and tune the
components in an Oracle® Analytics environment. It is assumed that readers know
server administration, Oracle® Fusion Middleware (FMW), hardware performance
tuning fundamentals, web servers, java application servers and database.
3
• Throughput
o A rate metric (requests per unit of time), for example, requests per
second, bits per second. For example, if an application can handle
20 customer requests simultaneously and each request takes one
second to process, this site has a potential throughput of 20
requests per second.
- Business process usage - Activities carried out by users in the normal flow of
your business cycle.
o Business process usage has three components:
▪ User activity - Activities available to users for reporting and
analysis.
4
2.0 TOP TUNING RECOMMENDATIONS FOR OAS
Performance tuning Oracle® Analytics Server is a complex iterative process, care
needs to be taken to have appropriate backups, proceed incrementally and
thoroughly test with each incremental change.
To get you started, we have created a list of recommendations to help you optimize
your Oracle® Analytics Server performance.
This chapter includes the following sections that provide a quick start for
performance tuning Oracle® Analytics Server infrastructure.
Note: While the list in each of the above stated section is a useful tool in starting
your performance tuning, it is not meant to be comprehensive list of areas to tune.
You must monitor and track specific performance issues within your Oracle®
Analytics Server dashboards reports design to understand where tuning can
improve performance.
5
2.1 Tune Operating Systems parameters
Proper OS tuning might improve system performance by preventing the occurrence
of error conditions. Operating system error conditions always degrade performance.
The following sections describe issues related to operating system performance:
6
For example, checking open files for nqsserver:
If you run the lsof command immediately after starting the OAS on Linux, it shows that
170 file descriptors were allocated by the nqsserver process (e.g. pid 9219) running on the
server. This number (170) is far below the default limit of 1024 file descriptors.
For example:
$ lsof -p 9219 | wc -l
170
b. Increase the open file limit (nofile) and the maximum number of process limit (nproc) in
the Linux configuration file limits.d from 1024 to 131972. For example:
[root@bi-1]# cd /etc/security/limits.d/
[root@bi-1 limits.d]# vi 99-oracle.conf
add following and save 99-oracle.conf file:
* soft nofile 131072
* hard nofile 131072
* soft nproc 131072
* hard nproc 131072
- If a max user processes (nproc) value is low (default is 1024) the exception
java.lang.OutOfMemoryError: unable to create new native thread will occur for
bi_serverN/JavaHost processes. Linux has a maximum allowed process per user
limit, that you can check current processes value by using the "ulimit -u"
command.
7
# Minimum, initial, and max TCP Receive buffer size in Bytes
sudo sysctl net.ipv4.tcp_rmem
# sysctl -w net.ipv4.tcp_rmem="4096 87380 134217728"
Tip: Allowing more buffer space will have more memory allocated to send/receive sorting
data. This can help to improve overall throughput and it will not burst data to the
network.
Important Note: Consult your Linux documentation for more information on how to
persist above modified kernel values after server reboot.
For more information about Linux tuning, you should consult your Linux
documentation. Note the above TCP/kernel tunable parameters and their
corresponding values are provided as examples and rough guidelines only. You can
re-adjust these, and other parameters based on actual system load, usage patterns
such as the number of concurrent users and sessions and so on.
8
2.1.2 Windows Server 2016 / 2019 Tuning Parameters
This topic describes how to tune the Windows Server 2016 / 2019 operating system
to optimize the performance of your Oracle® Analytics Server.
Windows Server 2016 / 2019 Server Parameter Default Suggested
Value Value
Increase the number of MaxUserPort 16384 64508
Under heavy loads it may be necessary to adjust the MaxUserPort. This
parameter determines the availability of user ports requested by Oracle®
Analytics Server. Tip: By default, the start port is 49152, and the default end
port is 65536, this means there are 16384 usable dynamic ports.
*Use the following “netsh” command to configure start port and the range:
Important Note: If you are using firewalls to restrict traffic on your internal
network you will need to update the configuration of those firewalls to
compensate for the new port range.
You can view the current dynamic port range on the server by using the
following “netsh” command:
Enforce TcpTimeWaitDelay
To ensure that the TcpTimeWaitDelay is enforced by the operating system, the value of the
StrictTimeWaitSeqCheck should be changed. Note: Decreasing the setting TcpTimedWaitDelay to 30
seconds and setting the StrictTimeWaitSeqCheck to 1 may improve your overall TCP performance.
1. Start the registry editor and Navigate to the following entry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
2. Create a new DWORD (32-bit) Value and Name the value “StrictTimeWaitSeqCheck”.
3. Modify the new entry and Enter 1 for the value.
4. Save the changes.
9
2.2 Tune Oracle® WebLogic Server (WLS) parameters
This topic describes how to tune the WebLogic Server to optimize the performance
of your Oracle® Analytics Server.
Important Note: You need to determine the optimal value for the Maximum Capacity as
part of your pre-production performance testing. Once optimal values are determined
then set the value of Initial Capacity equal to the value for Maximum Capacity to
boost performance of JDBC in WebLogic Server web applications.
10
2.2.2 Use the http.keepAliveCache.socketHealthCheckTimeout system property
By default, the cache does not check the health condition before returning the cached
connection to the client for use. Under some conditions, such as due to an unstable
network connection, the system needs to check the connection's health condition
before returning it to the client. To enable this behavior (checking the health
condition), set -Dhttp.keepAliveCache.socketHealthCheckTimeout to 1.
11
4. Note: If you have clustered setup then repeat the same steps to add the flag "-
Dhttp.keepAliveCache.socketHealthCheckTimeout=1" for the rest of the
bi_serverN nodes e.g. bi_server1, bi_server2, bi_server3...
5. Finally, click the Release Configuration under the Change Center on the top
left.
7. After the restart is completed, check if the server start arguments are applied.
To verify, check the bi_server1 process and look for parameter > "-
Dhttp.keepAliveCache.socketHealthCheckTimeout=1".
Note: the stuck state does not mean that it is stuck forever, and it might get unstuck
at a later point in time which can be checked in the BI managed server logs. But if
there is no reference like that then it might infer that the thread is stuck forever
Use the following Stuck Threads suggested settings as a starting point to improve
stuck thread detection, and then, after careful testing of your long running BI
transactions, adjust as needed.
12
Tip: To configure the above stuck thread detection behavior settings, you need to:
• Access the Administration Console for the BI domain.
• Expand the Servers node in the left pane to display the servers configured in
your BI domain.
• Click on the BI Managed Server (bi_serverN) instance and then select the
Configuration -> Tuning tab in the right pane. Modify the attributes i.e. Stuck
Thread Max Time and Stuck Thread Timer Interval
• Then click on the Overload tab for each BI Managed Server (bi_serverN) and
modify the Max Stuck Thread Time attribute.
o 0 (zero) - Indicates only direct groups will be found. That is, when
searching for membership in Group A, only direct members of Group A
will be found. If Group B is a member of Group A, the members will not
be found by this search.
o Any positive number—indicates the number of levels to search. For
example, if this option is set to 1, a search for membership in Group A will
return direct members of Group A. If Group B is a member of Group A,
the members of Group B will also be found by this search. However, if
13
Group C is a member of Group B, the members of Group C will not be
found by this search.
Tip: If you see BI Managed Server JVM segfaults and then it restarts / hangs when a user
logs in, check the user group memberships in Active Directory. If the user belongs to groups
in a circular reference (group A belongs to group B that belongs to group A), without
additional configuration parameters, the JVM may segfaults. To workaround that set in
WebLogic Server Admin console the "Max Group Membership Search Level" for the AD
provider. For more information, refer to “Improving the Performance of WebLogic and
LDAP Authentication Providers” section at https://docs.oracle.com/en/middleware/fusion-
middleware/weblogic-server/12.2.1.4/secmg/ldap_atn.html#GUID-E50EFFD3-51EB-4D0A-
BC1D-6BB08C73D68E
14
2.2.6 Tune WebLogic Server Node Manager Java Heap Size
In Oracle Analytics Server, WebLogic Server Node Manager is monitoring not only
WebLogic Managed Servers but also BI System components. When starting all the BI
processes using start.sh, Node Manager may take longer time to start, so it is
recommended to increase the java heap size for Node Manager.
...
else
case $JAVA_VENDOR in
Oracle)
if [ "${VM_TYPE}" = "JRockit" ]; then
JAVA_VM=-jrockit
MEM_ARGS="-Xms128m -Xmx256m"
UTILS_MEM_ARGS="-Xms32m -Xmx1024m"
else
JAVA_VM=-server
MEM_ARGS="-Xms32m -Xmx200m"
UTILS_MEM_ARGS="-Xms32m -Xmx1024m"
fi
VERIFY_NONE="-Xverify:none"
...
to
...
else
case $JAVA_VENDOR in
Oracle)
if [ "${VM_TYPE}" = "JRockit" ]; then
JAVA_VM=-jrockit
MEM_ARGS="-Xms128m -Xmx256m"
UTILS_MEM_ARGS="-Xms32m -Xmx1024m"
else
JAVA_VM=-server
MEM_ARGS="-Xms2048m –Xmx4096m"
UTILS_MEM_ARGS="-Xms32m -Xmx1024m"
fi
VERIFY_NONE="-Xverify:none"
...
Note: Verify in "commBaseEnv.sh" file that for all the JAVA_VM=-jrockit is changed
from MEM_ARGS="-Xms32m -Xmx200m" to MEM_ARGS="-Xms2048m –Xmx4096m". Save the
file and restart the services (using stop.sh & start.sh located at
<ORACLE_HOME>/user_projects/domains/bi/bitools/bin)
15
2.3 Tune 64bit Java Virtual Machines (JVM)
Newly deployed web application server instances use default memory heap
settings, which are often too small to accommodate Oracle Analytics Server 64-bit
requirements. Optimal JVM settings can be determined only by close monitoring of
application server performance under peak realistic load.
*Warning: Make sure you have enough physical memory allocated available on the
servers and then use the above settings as a starting point, and after load testing,
adjust as needed. For a stable even performance over time, you should set the initial
heap size (-Xms) to the same value as the maximum heap size (-Xmx).
Tip: How to increase the Oracle JVM heap memory value for OAS managed
servers (bi_serverN and AdminServer):
16
# 64 bit JVM memory settings
SERVER_MEM_ARGS_64="-Xms8g -Xmx8g"
export SERVER_MEM_ARGS_64
SERVER_MEM_ARGS_64HotSpot="-Xms8g -Xmx8g"
export SERVER_MEM_ARGS_64HotSpot
SERVER_MEM_ARGS_64JRockit="-Xms8g -Xmx8g"
export SERVER_MEM_ARGS_64JRockit
17
2.4 Tune HTTP Server parameters
This topic describes how to tune the HTTP server to optimize the performance of
your Oracle® Analytics Server.
18
2.5 Tune HTTP Server Compression / Caching
Why use Web Server Compression / Caching for Oracle® Analytics Server?
1. Bandwidth Savings: Enabling HTTP compression can have a dramatic
improvement on the latency of responses. Compressing static files and dynamic
application responses will significantly reduce remote (high latency) user
response time.
2. Improves request/response latency: Caching makes it possible to suppress the
payload of the HTTP reply using the 304-status code. Minimizing round trips over
the Web to revalidate cached items can make a huge difference in browser page load times.
19
2.5.1 Oracle® HTTP Server (OHS)
This topic describes how to enable caching / compression in Oracle® HTTP Server of
your Oracle® Analytics Server. Important Note: High load of HTTP replies with 304
status code causes the Oracle Analytics Server UI to work slowly in browser over
high latency networks. To resolve this issue, it is highly recommended to implement
HTTP caching and compression which will minimize the round trips over the Web
to revalidate cached items, resulting in a huge difference in browser page load times.
a. How to Enable Compression and Caching:
1. To implement HTTP compression / caching, install and configure Oracle HTTP
Server (OHS) for the Oracle Analytics Server (refer to "Enterprise Deployment Guide
for Oracle Analytics Server" document for details:
https://docs.oracle.com/en/middleware/bi/analytics-server/enterprise-deploy-oas/enterprise-
deployment-overview.html ).
2. On the OHS machine, open the file HTTP Server configuration file (httpd.conf) for
editing. This file is in the OHS installation directory. For example:
../user_projects/domains/base_domain/config/fmwconfig/components/OHS/instances/ohs1
3. In httpd.conf file, verify that the following directives are included and not
commented out:
LoadModule expires_module "${PRODUCT_HOME}/modules/mod_expires.so"
LoadModule deflate_module "${PRODUCT_HOME}/modules/mod_deflate.so"
4. Add the following lines in httpd.conf file below the directive LoadModule section to
compression / caching and restart the OHS:
#HTTP Compression
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
</IfModule>
20
b. Performance Gain Test (Oracle® HTTP Server)
The test with/without HTTP compression enabled was conducted to measure the
transactions response time / throughput for Oracle® Analytics Server.
The table below summarizes the performance improvement for OAS transactions
over a 1 Mbps bandwidth link for one remote user.
Packet Loss % 0 0 -
21
2.7 Tune Database Parameters
Tuning and indexing underlying databases: For Oracle BI Server database queries to
return quickly, the underlying databases must be configured, tuned, and indexed
correctly. Note that different database products have different tuning
considerations.
Tip: If there are queries that return slowly from the underlying databases, then you
can capture the SQL statements for the queries in the query log and provide them to
the database administrator (DBA) for analysis. See "Managing the Query Log" in the
Administering Oracle Analytics Server guide
(https://docs.oracle.com/en/middleware/bi/analytics-server/administer-oas/manage-query-log.html )
for more information about configuring query logging on the system.
• Database server where RCU schemas are hosted should be well fine-tuned as
per the Database Performance Tuning Guide.
22
3.0 PERFORMANCE MONITORING AND TESTING OAS
This topic outlines the processes that have to be monitored for the Oracle® Analytics
Server using built-in BI metrics and default Operating System performance utilities.
Tips:
• Use ODBC/JDBC Procedures to Obtain BI Server Diagnostics, for more details
refer to https://docs.oracle.com/en/middleware/bi/analytics-server/administer-oas/use-
odbc-jdbc-procedures-obtain-bi-server-diagnostics.html
• Capture Metrics Using the Dynamic Monitoring Service, for more details refer to
https://docs.oracle.com/en/middleware/bi/analytics-server/administer-oas/capture-metrics-using-dynamic-
monitor-service.html#GUID-989AA8FA-5129-42AB-90D9-072951800DBB
• Use Oracle Enterprise Manager (EM) URL to monitor end to end OAS real time
performance: http://<server>:9500/em . For more details refer to
https://docs.oracle.com/en/middleware/bi/analytics-server/administer-oas/manage-system-components-
using-fusion-middleware-control.html#GUID-9D28BB9F-E00E-4AB0-A7E5-BB17869F9CD0
• In Oracle Analytics Server, the perfmon URL is still valid to use i.e.
http://<server:port>/analytics/saw.dll?Perfmon
• Oracle Analytics Server from version 6.4 onwards includes performance tools for
Data Visualization, for more details refer to Developer Reference
1. From the navigation pane, expand the farm, then Business Intelligence, and
then the biinstance.
The Business Intelligence instance home page is displayed.
23
The Performance Summary page is displayed. It shows performance metrics,
as well as information about Active Sessions, Current Sessions, Total sessions
and Queries/sec for OBIPS and Oracle BI Server.
3. To see additional metrics, click Show Metric Palette and expand the metric
categories.
The following figure shows the Performance Summary page with the Metric Palette
displayed:
2. To overlay another target, click Overlay > Another BI Instance..., and select the
target. The target is added to the charts, so that you can view the performance of
more than one target at a time, comparing their performance.
o Click the Slider to display a slider tool that lets you define the duration in
the charts. For example, to show the past 10 minutes, instead of the past 15
minutes, slide the left slider control to the right until it displays the last 10
minutes.
o Select the calendar and clock icon. Then, enter the Start Time and End
Time.
Tip: You can also view the performance of components, such as Oracle HTTP Server
or Oracle WebLogic Server. Navigate to the component and select Monitoring, then
Performance Summary from the dynamic target menu.
24
3.1.2 Viewing Oracle Presentation Services perfmon page
The Oracle BI Server supports the accumulation of usage tracking statistics that can
be used in a variety of ways such as database optimization, aggregation strategies,
or billing users or departments based on the resources that they consume.
The BI Server tracks usage at the detailed query level. It is recommended to use
production usage tracking data to design the workload for your performance load
testing. See "Track Usage" in Oracle® Administering Oracle Analytics Server guide.
25
3.2 Diagnosing and Resolving Issues in Oracle Analytics Server
The usual indication that you should troubleshoot Oracle BI will be sluggish
performance of BI component. Examples of BI components are charts, tables,
dashboards, and queries. Many configuration performance issues can be detected
from the following logs:
Important Note: For additional information about Diagnosing and Resolving Issues
in Oracle Analytics Server, see “Diagnose and Resolve Issues” in Oracle®
Administering Oracle Analytics Server guide.
This guide will assist during the script creation process and enable the OAS tester to
create scripts faster and more reliably. It assumes that the person using this
document has experience working with Oracle Application Testing Suite.
Note: This support document (Doc ID 2518309.1) does not necessarily cover all OAS
transactions that have to be tested, nor does it guarantee that the parameters
mentioned in this document will perfectly match your particular environment.
26
3.4 How to Analyze Host Server Metrics
Administrators will find it useful to study these suggestions to undertake when a
metric value exceeds threshold. The commands provided are for the Linux and
Windows operating system.
• Linux: Check “cat /proc/meminfo” and confirm the total RAM expected.
Windows: Open the Task Manager, click the Performance tab and check the
Physical Memory section.
• Check whether there are unallocated huge pages. If there are and the
WebLogic Server / Oracle BI instances (OBIPS, JH, OBIS) are not expected to
use them, reduce the huge page pool size.
• Linux: Run top and sort by resident memory (type OQ). Look for processes
using the most resident memory and investigate those processes.
Windows: Open the Task Manager, click the Processes tab and click the Mem
Usage column to sort the processes by memory usage
Otherwise, check whether cabling or the network card is faulty and replace as
appropriate.
27
rtt min/avg/max/mdev = 0.168/0.177/0.200/0.010 ms
The packet loss should be 0% and rtt should be less than .5 ms.
• Ask the network monitoring staff to look for saturation or network packet
loss from their side.
When CPU Usage or Run Queue Length Is Beyond Threshold i.e. Run Queue (5
min average) > 4 (The run queue is normalized by the number of CPU cores):
The normal cause is runaway demand, a poorly performing application, or poor
capacity planning.
When System CPU Usage Is Beyond Threshold i.e. CPU Utilization > 95%
• High system CPU use could be due to kernel processes looking for pages to
swap out during a memory shortage.
• High system CPU use is also frequently related to various device failures.
Run {{dmesg | less}} and look for repeated messages about errors on some
particular device, and also have hardware support personnel check the
hardware console to see if there are any errors reported.
28
When Filesystem Usage Is Beyond Threshold i.e. Filesystem Space Available <5%
The normal cause is an application that is logging excessively or leaving behind
temporary files.
• Run lsof -d 1-99999 | grep REG | sort -nrk 7 | less to see currently open
files sorted by size from largest to smallest. Investigate the large files.
• Run ps o pid,nlwp,cmd | sort -nrk 2 | head to look for processes with many
threads.
Windows: Run perfmon and look at the Alert logs. Run chkdsk to check for disk
failure.
• Look for processes that are using the disk. From a shell window, execute ps aux
| grep ' D. ' several consecutive times to look for processes with "stat" D.
29
4.0 TUNING OAS COMPONENTS
This chapter provides a quick start guide for tuning main Oracle® Analytics Server
system components (i.e. BI Presentation Services, JavaHost, BI Server).
Below OAS performance tuning map can help you to navigate the main OAS
performance components that need to be tuned and help you to resolve your BI
performance issues.
30
4.1 Oracle® BI Presentation Services Component
To achieve better performance with Presentation Services (OBIPS) component, the
following parameters can be tuned in instanceconfig.xml, config.xml file for better
performance and scalability.
Charting threads / memory related tunable parameters
Number of charting threads and maximum number of jobs allowed in the queue can be
tuned for performance when the dashboards have several charts:
Important Note: OBIPS has a thread pool for Javahosts. Its size needs to be the total
number of threads allowed in all Javahosts. For example, if there are two Javahost
instances. Each has 200 threads defined in its own (Javahost) configuration file (config.xml),
and then the MaxThreads size for OBIPS chart threadpool size needs to be 400 (200 + 200).
a. In instanceconfig.xml file located at
../user_projects/domains/bi/config/fmwconfig/biconfig/OBIPS,
add the following inside <ServerInstance>:
<ServerInstance>
<ThreadPoolDefaults>
<ChartThreadPool>
<MinThreads>100</MinThreads>
<MaxThreads>400</MaxThreads>
<MaxQueue>2048</MaxQueue>
</ChartThreadPool>
</ThreadPoolDefaults>
</ServerInstance>
31
4.2 Oracle® BI Server Component
The following are the important parameters to tune in the NQSConfig.INI file and
will increase the performance of the BI system under high users’ load:
Initialization blocks
• Repository Init-blocks: Called once during server startup and refreshed as needed
after the refresh interval.
• Session Init-blocks: called for each new session; slow SQL can slow down login.
Use Allow deferred execution option. If you select this option, execution of the
initialization block is deferred until an associated session variable is accessed for
the first time during the session. This option prevents execution of all session
variable initialization blocks during the session logon stage, giving a shorter
logon time. Session variables that are not needed during the session do not have
their initialization blocks executed. This saves the resources which would have
been used to execute these unnecessary initialization blocks. See “When Execution
of Session Variable Initialization Blocks Cannot Be Deferred” in Managing
Metadata Repositories for Oracle Analytics Server guide.
32
BI Database Connection Pool Settings - If you anticipate a higher load on a system, you
can change the number of maximum connections for various data sources to make
resource use more efficient. The maximum connection size needs to be set in the
repository (RPD) for each DB connection pool. The size of the connection pool determines
the number of available BI Server connections and the number of available threads for
processing physical queries. A logical query may generate multiple physical queries, each
of which could go to different connections.
33
See "A NQSConfig.INI File Configuration Settings" in Administering Oracle Analytics
Server guide.
Query Plan Caching - The query plan cache is an internal performance feature that
increases the speed of the query compilation process by caching plans for the most
recently used queries.
• When the Query Plan cache is hit :
o It eliminates query parsing time.
o It increases scalability due to less lock contention.
• Never set the query plan cache size to 0. Doing so may cause Result Cache misses.
• NQSConfig.INI parameters to be tuned:
[SERVER]
MAX_QUERY_PLAN_CACHE_ENTRIES = 1024; # default is 1024
MAX_QUERY_PLAN_CACHE_ENTRY_SIZE = 0; # 0 for default
Note: Based on testing you need to put in the right value for your system, see
"NQSConfig.INI File Configuration Settings" in Administering Oracle Analytics Server
guide for more information about query caching concepts and setup.
34
#default value is NO. When this parameter is set to YES, then when a query gets an
#aggregate rollup hit, the result is put into the cache. Setting this parameter to YES might
#result in better performance but results in more entries being added to the cache.
You can configure the Oracle BI Server to maintain a local, disk-based cache of query
result sets (query cache). The query cache allows the Oracle BI Server to satisfy many
subsequent query requests without having to access back-end data sources (such as
Oracle Database). This reduction in communication costs can dramatically decrease query
response time. See "About the Oracle BI Server Query Cache" in the Administering Oracle
Analytics Server guide.
Read-Only Mode - Permits or forbids changing Oracle BI repository files when the
Administration Tool is in either online or offline mode. The default is NO, meaning that
repositories can be edited.
• Makes the repository read-only so that online updates cannot be made.
• Increased scalability due to less lock contention
• NQSConfig.INI parameters to be tuned via EM Console:
[SERVER]
# This Configuration setting is managed by Oracle Analytics Server Enterprise Manager
READ_ONLY_MODE = YES;
35
CACHE_POLL_SECONDS = 300;
To achieve this, it is recommended that you increase the default bulk fetch row count and
the size of the fetch buffer. You can modify both below DB Features settings in the data
model file (RPD) for your Oracle Analytics Server.
Note: If the buffer size is not high enough, each bulk fetch contains fewer rows than
expected by the DEFAULT_BULK_FETCH_ROW_COUNT. When network latency is high,
this can degrade performance.
36
4.3 Oracle® JavaHost Component
The following are the important parameters to tune in JavaHost config.xml and
obijh.properties files and will increase the performance for scenarios with Trellis
charts rendering and export to excel downloads.
4.3.1 Tuning Exporting Large Data Sets to Microsoft Excel
To improve export to excel download time, it is recommended to perform following
fine tuning for the JavaHost process.
Important Note: To avoid potential system performance issues, the following tuning values
for JavaHost parameters should be set only after considering the nature of the Excel
download workload along with available system memory capacity.
MEM_ARGS=-Xmx8g
Set 0 for XMLP tag in JavaHost configuration file to handle large data
Navigate to ORACLE_HOME/user_projects/domains/bi/config/fmwconfig/biconfig/, OBIJH
folder.
In the config.xml file, configure the XMLP tag for large data as follows:
<XMLP>
<InputStreamLimitInKB>0</InputStreamLimitInKB>
<ReadRequestBeforeProcessing>false</ReadRequestBeforeProcessing>
</XMLP>
37
Important Note: As temporary files locations are highly used by JavaHost / OBIPS
processes, any improvement on IO performance (i.e. using Flash drives, RAMDISK) for
these tmp files locations would significantly improve performance of the export to excel.
On Linux you can use RAMDISK to put tmp files for JavaHost and OBIPS processes.
Caution: You need at least 256GB free physical memory in the system in order to
implement following RAMDISK tuning settings. Please note the settings below will cause
severe performance issues if implemented in system that has low memory.
OBIJH_ARGS=-server -Djava.io.tmpdir=/dev/shm/jh1
b. For OBIPS, you need to perform following to move temp files location to RAMDISK:
mkdir -p /dev/shm/obips1/tmp
cd ../user_projects/servers/obips1
mv tmp obips1_tmp.localDisk
ln -s /dev/shm/obips1/tmp
Note: make sure these paths, permissions and directory stays persist after reboot.
Consult your Linux documentation for more information on how to implement
this.
38
4.4 Oracle® BI Schedulers Component
To achieve better performance with the BI Schedulers component, the following
parameters can be tuned in schedulerconfig.xml
You may encounter the following behavior with large Agent runs. A description of the
issue and a possible tuning solution follows:
• For personalized Agents with large email distributions that include PDF attachments,
some concurrency issues between OBIPS and OBISched may be encountered. These
will typically manifest as missed email deliveries and corrupt PDF attachments. To
alleviate such occurrences, the OBIScheduler parameter ‘MaxExecThreads’ should be
relatively less than the OBIPS parameter 'MaxConcurrentRequests'.
Note: The setting in instanceconfig.xml (MaxConcurrentRequests) affects only PDFs by
throttling their generation.
The setting in scheduler (MaxExecThreads) affects all delivers agents by throttling OBISched
requests to OBIPS.” In the installed default configuration, these values are set as follows:
Important Note: These settings may produce issues for the situation detailed above as
OBISched could overwhelm OBIPS with requests. As mentioned above, ‘MaxExecThreads’
should be relatively less (25% to 50%) than 'MaxConcurrentRequests'.
39
Best Practices Guide for Tuning Oracle® Analytics Server
Applies To: Oracle Analytics Server (5.x and later)
First edition: May 2022
Author: Ahmed Awan
Oracle Analytics Service Excellence (OASE) - Customer Engineering & Advocacy Lab - CEAL Team
Change Record
40