Documente Academic
Documente Profesional
Documente Cultură
Performance Guide
1. Overview 1
The goal of this document is to give users an overview of the performance of Oracle E-Business Suite
Information Discovery and some basic instructions on how to enhance performance for Oracle
E-Business Suite Information Discovery products.
The Oracle Endeca Server application services requests for one or more Endeca data domains. Each Endeca data
domain has one Dgraph process, or, if you implement clustering, a set of one or more Dgraph processes, that
handle end-user query requests. The Dgraph uses proprietary data structures and algorithms that allow it to provide
real-time responses to client requests. It stores the data files that were created from loading the data into it. After the
data files are stored, the Dgraph:
Allocating more memory to the cache improves performance by increasing the amount of information that can be
stored in it. Thus, this information does not have to be recomputed. Such a caching strategy allows the computing
resources to be utilized better, and therefore improves throughput of the Oracle Endeca Server.
Access the Dgraph statistics page for each Dgraph process running for your data domain, using the following URL:
http://<host>:<port>/endeca-server/admin/<data_domain>?op=stats
Replace < host> and <port> with the host name and port of the Oracle Endeca Server, and <data_domain> with the
name of your data domain.
Note: If your data domain runs on more than one Oracle Endeca Server instance, you should access this page on
each system hosting the Oracle Endeca Server for this data domain.
On the Dgraph statistics page, examine the Dgraph cache, in particular the number of evictions. If this number is
high and the hit ratio is low, it means that the default value is insufficient for your data domain, as shown in Figure 1.
On Linux-based systems, you can use operating system tools such as top, ps -efl, or ps -aux to look at the
size of Dgraph processes to determine the process’s resident set size in the physical memory on the machine, and
the actual amount of memory the given process consumes. For example, Figure 2 shows the sample output for the
top command:
Figure 2 Sample Output for Memory Usage Using the Top Command
Use the following recommendations when tuning the performance of your applications running on top of the Oracle
Endeca Server.
» Check the current configuration setting for the Dgraph cache using the following command:
where FND_EID_DD_DEFAULT_PROFILE is the default name of the profile used by your data domain. This
command returns the setting for the --compute-cache-size for all Dgraph processes serving your data
domain, as shown in Figure 3. This setting represents the amount of RAM, in MB, allocated to the result cache on
each Dgraph node in the data domain.
The default is 0, which is interpreted as follows: when an absolute value is set to 0, the default Dgraph cache size
is computed as 10% of the amount of RAM available on the Oracle Endeca Server node hosting the Dgraph
node.
Alternatively, you can check the cache size for each Dgraph by running the grep command from Linux, as follows:
» Experiment with gradually increasing the Dgraph cache size. For example, you might start by changing the cache
size to 20% of memory instead of leaving it at the default value. You should have enough memory in the system
to accommodate the new value based on the number of data domains that you have on the system. If you later
find that queries are getting canceled because there is not enough available memory to process them, then you
should decrease this amount.
Note: To specify the new value; you would need to calculate the size in MB that corresponds to 20% of the
memory, based on the size of the RAM on the system hosting the Oracle Endeca Server.
To specify a new Dgraph cache size for a data domain, perform the following steps:
» Set the FND_EID_DD_PROFILE_PRODUCTS parameter to a list of the products whose cache you want to
tune.
» Set the FND_EID_DD_CACHE_SIZE parameter to the new cache size value.
2. Run the postSetup.sh script and select Option 2 - Create DD Profile.
3. Run the command endeca-cmd get-dd-profile FND_EID_DD_DEFAULT_PROFILE to return the new setting
for the --compute-cache-size parameter.
4. Monitor the Dgraph cache again on the statistics page, where you should see that the number of evictions is
low and the hit ratio is high.
You can check CPU usage and throughput for the Dgraph by accessing the statistics page:
http://<host>:<port>/endeca-server/admin/<data_domain>?op=stats
less /proc/cpuinfo
To check the number of threads for each Dgraph, which is set to 4 by default, you can run the grep command from
Linux as follows:
To specify a new number of computed threads for the data domain, perform the following steps:
3. Type either the word table or the word results in the input field on the left side of the filtering bar. These
criteria will filter the requests to display only results table data loading requests.
4. In the filtered results, review the size of the data in the Size column and the total amount of time taken to load that
data in the Time column.
» The most important key is the portlet ID. This ID is extracted from the Name (Request URL) column as the
value of the parameter called p_p_id.
» For example, consider the following example name:
<url>?p_p_id=endecaresultstableportlet_WAR_endecaresultstableportlet_INSTANCE_k
0OT&<more_params>
5. You can further analyze the time required for each request by hovering the pointer over the small blue bar in the
Timeline – Start time column for each request, as shown in Figure 14.
» Request Sent / Sending: The time spent issuing the network request. Typically a fraction of a millisecond.
» Waiting (TTFB): The time spent waiting for the initial response, also known as the Time To First Byte. This
time captures the latency of a round trip to the server in addition to the time spent waiting for the server to
deliver the response.
» Content Download / Downloading: The time spent receiving the response data. This time can vary
depending on the number of simultaneous requests being sent.
The following section describes how to determine whether this portlet calls a specific slow server query.
df.performanceLogging=<metrics to include>
Replace <metrics to include> with a comma-separated list of the values for the metrics you want to include.
The following table shows the available metrics values that you can specify in the list.
Value Description
QUERY Specify this value to include information for Oracle Endeca Server queries.
In the default configuration, where only the Oracle Endeca Server queries and portlet server executions are
included, the value for this setting is specified as follows:
df.performanceLogging=QUERY,PORTLET
To include all of the available metrics, add the CLIENT option, as follows:
df.performanceLogging=QUERY,PORTLET,CLIENT
If you do not specify a value for this setting, then the metrics log file and the Performance Metrics page will not
display any metrics data.
df.performanceLogging=
Total duration (msec) The total time for this entry (End time minus Start time).
Start time (msec since epoch) The time when this entry started.
» For Oracle Endeca Server queries and server executions, this column uses the
server's clock.
» For client executions, this column uses the client's clock.
End time (msec since epoch) The time when this entry finished.
» For Oracle Endeca Server queries and server executions, this column uses the
server's clock.
» For client executions, this column uses the client's clock.
Page ID If client instrumentation is enabled, the number of full page refreshes or actions that the
user has performed. This value is used to help determine how long it takes to load a
complete page.
Some actions that do not affect the overall state of a page, such as displaying attributes
on a Guided Navigation component, do not increment this counter.
Miscellaneous A URL-encoded JSON object containing miscellaneous information about the entry.
The portlet ID in the metrics log file should match the portlet ID you obtained in step 4 of Section 3.1.2. Measuring
Individual Portlet Performance.
Check whether the start time and end time of the query reflect a slow server query. If the total duration is relatively
high, you can optimize the query as described in the following section.
For each data source or component, the table tracks the following information:
Note: Oracle Endeca Server query performance does not correlate directly to a Studio application page, because a
single Studio page often uses multiple Oracle Endeca Server queries.
CONNECT W ITH US
blogs.oracle.com/oracle
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only, and the
contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other
facebook.com/oracle warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or
fitness for a particular purpose. We specifically disclaim any liability with respect to this document, and no contractual obligations are
formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any
twitter.com/oracle means, electronic or mechanical, for any purpose, without our prior written permission.
oracle.com Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and
are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are
trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. 0116