Optimizing PMF Performance

Topics:

The PMF data mart and application are pre-tuned for optimal reporting and update performance, so further tuning of the application itself is not of concern for our customers. On the application side, every process entering and extracting data from the data mart has been already optimized to take advantage of enhancements possible in database construction, SQL performance with WebFOCUS, and optimal use of resources from your environment.

Diagram

In looking at performance you must look at the entire chain of connected processes that are involved when running PMF. The factors that can affect performance of the PMF application are listed below, from back-end to front-end:

  1. RDBMS configuration.
  2. WebFOCUS Application Server configuration.
  3. WebFOCUS Client configuration.
  4. Web server configuration.
  5. Network, Web access, and connectivity speed.
  6. Web speed.
  7. Browser version and configuration.
  8. Other processes running on the actual PC that is running the browser.

RDBMS Configuration

Topics:

In some cases, customers may notice suboptimal performance doing RDBMS query in PMF. These are most likely due to the demand placed by other applications on the machine. This can occur when a customer configures the PMF data mart in a busy application environment with other reporting applications and other transactional applications in the same RDBMS context.

To diagnose this issue, examine the configuration of your RDBMS server machine and determine if enough resources are allocated for the RDBMS to run at optimal speed. In some cases, an RDBMS server might be running on a multi-use machine that also runs other applications besides the RDBMS. Your RDBMS server might be sharing a machine with RDBMS or other application servers used by other parts of your organization.

Other things that should be considered are:

  • The RDBMS server machine might be running multiple versions of Oracle, both Oracle and MS SQL Server, or other RDBMS servers. If this is the case, make sure the RDBMS process used for the PMF data mart has sufficient processor, memory, and disk priority to enable it to run as fast as possible. If the processes are not granted real-time access, that would entail a slow-down that will interfere with performance.
  • The RDBMS server machine might be running other application processes. For example, it might be doubling as a Java application server, web server, or performing other application-specific tasks, either for PMF or for other applications run onsite.

To test for optimization as you tune, perform queries of PMF data using SQL direct against the RDBMS server, using RDBMS tools. Also, perform queries of other data on the server. There are utilities included with PMF to simplify this testing for Oracle. They are located in C:\ibi\apps\pmfdbms\db_utils. Make sure to test this in isolation, outside of the WebFOCUS environment or PMF application.

The best practice for this configuration is a number of customers using PMF have a database exclusively configured for use with PMF, since this type of environment permits faster performance.

Diagnosing RDBMS

Review the following performance settings to diagnose application performance:

  • DB version.
  • Processor cores.
  • Available memory.

Note: PMF asks the RDBMS to perform the summarization of your metrics, since transferring many millions of rows of metric data over to WebFOCUS for summarization would cause very slow performance. The SQL issued from PMF is optimized to request summaries from the RDBMS on the dimensional intersections used for the metrics.

You can check the timings for your RDBMS query by running a PMF report, or looking at the View Source in your browser, and reviewing the traces as shown below the final </html> tag.

To help determine if the RDBMS should be optimized, look for the following line:

-* ++++++++++++++++++++++++++++++++++++++++ Run time for Step(s) Extract Normal Measure Data: nn.nnn seconds

If nn.nnn is more than 3 seconds, the RDBMS should be optimized.

Note that if you set Application Tracing to ON in the PMF Settings section in the Manage tab, you will see a very detailed trace of RDBMS queries from PMF.

Optimizing RDBMS

We recommend you:

  • Use a 64-bit version of the RDBMS and OS on the RDBMS machine.
  • Maximize the available memory on the box to permit in-memory processing of the core tables. Use the base row space calculation to determine the amount of memory needed. You can find this calculation in Estimating PMF Database Size.
  • Check for long-running jobs running during hours when high performance is expected. Consider scheduling long-running jobs for non-peak hours.
  • Use Materialized Views (Oracle or DB2) or Indexed Views (SQL Server), which provide a 10x improvement in response time for queries. These will require some planning to implement, as they must be optimized for common access. They also require processing, as they must be dropped before any changes to PMF Dimension structure are made and then rebuilt.

WebFOCUS Application Server Configuration

Topics:

Customers that install PMF into a WebFOCUS configuration with other WebFOCUS high-demand reporting and multiple transactional applications might find that these other applications can place a stress on PMF that causes less than optimal performance. PMF Dashboards typically use multiple server agents at run time.

Some best practices for this configuration are:

  • Maximize ready agents. If you cannot dedicate the WebFOCUS Reporting Server to PMF use only, dedicate a high number of pre-started server agents and a separate service for PMF. You can configure this using the WebFOCUS Client and MR Domain. Set the number of agents ready to a factor of 10 x the number of runtime-concurrent users (for example, users hitting enter at the same time) you plan to support.
  • Offload transaction-heavy processes. PMF data loads and snapshot restores can also demand large system resources. These processes are better run during hours of low demand, and you can schedule these processes to do so.
  • Use 64-bit access. WebFOCUS 64-bit server uses memory more efficiently and the 64-bit data drivers access and transfer more data with less paging. Note that if you use this configuration, the entire path from RDBMS to WebFOCUS Server must be 64-bit. The RDBMS must support 64-bit access, the RDBMS client must be 64-bit, and you must use a 64-bit WebFOCUS Reporting Server.

Diagnosing Reporting Server Performance

Review the following performance settings to diagnose application performance:

  • WebFOCUS version.
  • Processor cores.
  • Available memory.
  • Number of pre-started agents.
  • Max agents.
  • Is the tracing turned on?

Optimizing the Reporting Server

We recommend you:

  • Use a 64-bit version of both the WebFOCUS Reporting Server and the underlying OS on the WebFOCUS Server machine, if possible.
  • Maximize the available memory on the box. Use the following average per-agent server load calculation to determine how much memory you will need.

    For prestarted agents, use the following calculation:

    total users * total estimated concurrency factor * total expected simultaneous demand * 8

    This determines the number of pre-started agents that you will need to support PMF concurrency with limited latency,

  • Maximize available and ready agents to the maximum available processor and memory that it can handle.

    To calculate the real memory needed for agents, assume that an average memory footprint is 7MB/agent. The calculation would be pre-started agent count x 7MB. For example, if the max total users is 300, the concurrency factor is 50%, and the demand factor is 10%, you get (300 * 0.5 * 0.1) or 7.5. Multiply this by 8 agents and get 60. 60 * 7MB = 420MB of memory to support agents.

  • Make sure that the maximum limit for the maximum allowed agents is identical with the number allowed by your license. If it is unlimited, use 50% above the minimum concurrency requirements.
  • Ensure that WebFOCUS Server and Client tracing are disabled.
  • If WebFOCUS is being used heavily for other purposes on the same box, such as running batch jobs, consider the following:
    • Scheduling long-running jobs for non-peak hours.
    • Moving any high-demand batch or non-real time jobs to another machine.
    • Configuring PMF with a dedicated running service and maximize the number of ready agents for this service. You can also increase the priority of PMF and other real-time application and decrease the priority of the batch jobs and any other job that may be running.

WebFOCUS Client and Web Server Configuration

Topics:

WebFOCUS Client Configuration

Some best practices for this configuration are:

  • Allocate enough heap. The recommended heap size is currently a minimum of 1GB of real memory, which is enough to support hundreds of users. it is possible to support thousands of users by using a 64-bit JVM for your Application Server, and gaining the ability to allocate more than 1.5GB of heap space. You could also be experiencing slow performance with chart delivery in WebFOCUS if you have not allocated enough heap size and for your Java Application container.
  • Check your permsize. You should also maximize the permsize of the JVM. For more information about this setting, please see the documentation for your Application Server.

Web Server Configuration

If your web server has been configured in a multi-server load-balanced environment, allowing shared disk space between those multiple servers to enable all clients to receive web-server resident resources (such as pre-run charts or cached data), make sure the access to the shared network folder is as fast as possible, and that the shared folder is resident on the fastest-responding machine possible.

Diagnosing the Web Server Box

Review the following performance settings to diagnose application performance:

  • Processor cores and available memory.
  • Web server. Version, configuration.
  • Is it running HTTPS or HTTP?
  • Is HTTP compression turned on?
  • App server (usually Tomcat). Configured heap size. Is tracing turned on?

Optimizing the Web Server/App Server Machine and the WebFOCUS Client

We recommend you:

  • Use a 64-bit version of the OS on the WebFOCUS Server machine.
  • Maximize the available memory on the box.
  • Enable HTTP Compression for the following document MIME types: HTML, HTM, XML, SVG, and JS.
  • Increase available Java Heap size to the maximum that is possible for allocated memory on the box, Java Heap size alone can make a huge difference for Web App Server performance. For a 32-bit OS, the maximum is 1.5GB. For a 64-bit OS, you can double the maximum to 3GB.

Network, Web Access, and Connectivity Speed

Topics:

Slow network connections between your RDBMS server and your RDBMS Client (which feeds data over the adapter to the WebFOCUS Reporting Server), or slow network connections between your WebFOCUS Reporting Server and your WebFOCUS Client machine (which enables transmission of data to and from your web server) can adversely affect performance. It is best to ensure that you keep the fastest network connection between these machines, as the connections make up the heart of your PMF and WebFOCUS environment.

Diagnosing the Network and Browser

Review the following performance settings to diagnose application performance:

Network. What is the speed of pipes between each choke point? Are there are special items to take note of? For example, are you logging on through a security bridge or a switch that might be slowing down traffic? How is the user conducting the test accessing the application? Are they using a T1 line, 10baseT, 100baseT, gigabit, or wifi B/G/N?

Browser. What is the browser type and version? Is the site configured to the browser as a local Intranet? Is caching turned on? Is Flex caching turned on if Flex is being tested?

Optimizing Browsers

We recommend you:

  • Use a recent browser release. IE10 performs much faster than older versions, and allows up to 10 simultaneous HTTP threads to run on an Intranet configured application. Note that IE6, IE7, and IE8 are no longer supported by Microsoft, and is not recommended for use.
  • In IE, configuring caching to Automatic permits as many files as possible to be cached. You can configure caching across your site by using a Policy. If you are running an Internet version of PMF, advise your users to turn on the browser caching feature.
  • Turn on Flex caching. A number of PMF Gadgets use Adobe Flex (Flash) technology, and they are clearly marked in the Gadget catalog. If any of the Dashboards you use have Adobe Flex compounds, your users must activate and expanding their Adobe Flash caching. For more information, see the Adobe website.

Web Speed Capabilities

Topics:

PMF has the capability to run faster over slower Internet connections using:

  • Minified and optimized JavaScript files. These files have been code-optimized for speed and compressed to the absolute minimum size needed to run with full quality.
  • Graphics now implemented as CSS sprites. This reduces the number of HTTP requests that are needed to load the graphical elements of the PMF user interface.
  • Enabled caching. This allows large parts of the application to run from the browser cache.

Ensuring Web Speed

PMF is a complex application with many dependencies on your RDBMS, WebFOCUS Server, WebFOCUS Client, web server, and browser. For optimal performance, and to operate PMF at full speed capacity, you need to tune your environment so it performs optimally. This is especially important if you are running the application on the Internet or in the cloud.

It is not possible for any application to speed up your network, optimize the standard web servers of your company, or increase the processing capacity of your provisioned server hardware.

Diagnosing Application Performance

Application performance is never automatic. It must be designed into the application and then enforced in the environment. Depending on the performance and response time expected, optimizing application performance might require you to review every possible choke point.

The first thing that must be determined is what is the expected performance of the application in seconds. Once you know the expected speed, you should review the entire setup of the environment in order to explore all of the possible performance choke points.

Getting Optimal Application Speed

The following is a set of guidelines to maximize the response capability of your WebFOCUS environment in order to allow optimum performance of any real-time applications, including PMF.

Disabling Minification

If you need to disable minification for any reason, you can find the setting to enable or disable minification by going to the Manage tab, selecting Settings and then System. Setting Run Minimized to OFF will disable minification. The default is on and should be left ON for the best web performance.

Changing AJAX Timeout

If you system is not optimized for performance, your PMF Dashboards or other operational parts of the application might run more slowly than expected. If this situation occurs, you may see a semaphore timeout message from PMF, which indicates that AJAX processes have taken longer than expected.

You can extend the amount of time PMF waits for AJAX processes to complete by changing the AJAX Timeout setting. In the Manage tab, select Settings and then System. Set the number of seconds PMF should wait for AJAX processes to complete and return in the Ajax Timeout field. 30 seconds is the default.

Browser Version and Configuration

The browser version you use can cause slow down performance and speed tests conducted on more recent browsers show performance increase. For example, JavaScript and HTML rendering speed differences between MS Internet Explorer 6 and MS Internet Explorer 10 reveal a speed increase by a factor of 50.

Another aspect to take into consideration is browser configuration. If PMF is loading very slowly after a fast display of the portal, make sure the website from which you are accessing PMF has been configured in Internet Explorer as an intranet site. The security status of the current site can typically be seen on the Internet Explorer status bar.

If the Internet Explorer status bar says the PMF Website is Internet, then the PMF JavaScript components are being examined by Internet Explorer every time you access the site, which considerably slows down PMF runtime.

If you certify the site in your browser as Local Intranet, you will skip the extra examination steps and PMF will run considerably faster. Since the PMF server is already an intranet site by definition, this action simply confirms this.

As of MS Internet Explorer 8, and with all previous versions, you certify this by clicking Tools, selecting Internet Options, and then clicking the Security tab. Then, click Local Intranet Site or Trusted Site, click Sites and then Advanced. Make sure the web server root of your site is listed there. If it is not, add it.

If the procedure above does not match your version of Internet Explorer, consult the Internet Explorer Help for more information.

Note: If you have a lot of PMF users at your site, you can configure a Site Policy to mass-configure this for all your users. For more information on how to set up a Site Policy, please consult your Microsoft Windows administration documentation.

Browser Support

Microsoft Internet Explorer

PMF Release 8.1.1 supports MS Internet Explorer 10 and 11 only. Internet Explorer 6, 7, 8, 9, and earlier are not supported. PMF end users using Internet Explorer 8 or 9 need the latest Adobe SVG plug-in for PMF to run correctly.

Note: Although Internet Explorer 9 and higher have native SVG and HTML5 support, these capabilities are not available if PMF is running within WebFOCUS BID or WebFOCUS 8 Portal and the Adobe SVG plug-in must be installed. If you upgraded from Internet Explorer 8 and you previously had the plug-in installed, you must reinstall it.

Mozilla Firefox, Google Chrome, and Apple Safari

Pmf Release 8.1.1 supports full operation in Mozilla Firefox, Google Chrome, and Apple Safari browsers on Mac or iOS only. No SVG plug-in is required for these browsers, and it is recommended that you run the latest versions of each browser.

General Browser Note

The latest version of Adobe Flash must be installed so that PMF’s Adobe Flex Gadgets work correctly.

PC Running the Browser

If the PC running the browser has a lot of resident applications and not enough memory to run them, browser performance can be adversely affected. Make sure your machine is configured with enough real memory to enable fast performance.

Also, ensure that any anti-virus software is not checking needed browser application components at run time. Certain anti-virus applications can be configured to examine JavaScript resources and other components indiscriminately.

WebFOCUS

Feedback