Sizing OracleAS Portal : Usage reporting from the Performance Logs

Sizing : Usage reporting from the Performance Logs

Introduction

OracleAS Portal Release 3.0.x provided portal administrators with a collection of reporting and charting portlets, available by default on the Monitor tab, for reporting object access information. The information in these reports and charts was retrieved from the OracleAS Portal Activity Log tables, which were located in the OracleAS Portal Repository. In addition, a set of public views were made available for anyone who wished to issue their own SQL queries directly against this data.

With the move to OracleAS Portal Release 2, and the introduction of OracleAS Web Cache into the portal architecture, the information in these tables became inaccurate. Therefore, all the pre-built reporting and charting portlets were removed from Portal. The OracleAS Portal Activity Log tables and views still remain in the OracleAS Portal Repository for backward compatibility, however, these tables may be removed entirely in a future release. You will find that the tables still get populated with data when objects in the repository (charts, forms reports etc) are created or dropped. This data is not a reliable source of accurate usage logging data for view only activities, because they do not take into account content that is delivered from the mid-tier file cache or Web Cache. This functionality has been replaced by a set of reports known as the Portal Performance Reports.

For a full understanding of all the monitoring solutions available currently and the plans for the future please read Monitoring, Diagnostics and Analytics with OracleAS Portal which is available on Portal Center. To understand how to configure the performance monitoring service you can read the technote 'Performance Monitoring with mod_plsql in OracleAS Portal ', which is also available on Portal Center.

All the reports mentioned here accept an argument to adjust their output, if not mentioned in this tech note, you will find that the arguments are documented in the header of each script.

List of Reports

Available from 3.0.9.8.3+

Back to Top

What is the peak login time per day?

Generated by the summ_login.sql file with an argument of 'hour' or 'day'. The file generated by this report is called summ_login_byhour.txt and looks like the sample below.

           Successful Login Time Summary, by Hour Page     1

                     Avg     50th     90th             Total
                     Req     Perc     Perc       Req     Req
Date      Hour       sec      sec      sec     Count    mins
--------- ----- -------- -------- -------- --------- -------
03-SEP-02 00:xx    1.482    1.249    1.819       540    13.3
          01:xx    1.622    1.312    3.583       486    13.1
          02:xx    1.665    1.370    2.124       425    11.8
          03:xx    1.844    1.204    3.301       358    11.0
          04:xx    1.732    1.403    2.072       498    14.4
          05:xx    0.800    0.533    0.720       978    13.0
          06:xx    0.768    0.513    0.675      1332    17.1
          07:xx    0.641    0.506    0.636      1565    16.7
          08:xx    0.595    0.484    0.617      1656    16.4
          09:xx    0.556    0.484    0.609      1506    14.0
          10:xx    0.573    0.487    0.619      1591    15.2
          11:xx    0.569    0.484    0.604      1831    17.4
          12:xx    0.489    0.478    0.591        85     0.7

The example shows that were 1,506 successful logins between 09:00 and 09:59, with each login request taking an average of 556ms to process.

Back to Top

How many logins per day does the portal receive ?

Generated by the summ_login.sql file with an argument of 'day'. The file generated by this report is called summ_login_byday.txt and looks like the sample below.

            Successful Login Time Summary, by Day

               Avg     50th     90th             Total
               Req     Perc     Perc       Req     Req
Date           sec      sec      sec     Count    mins
--------- -------- -------- -------- --------- -------
04-SEP-02    0.902    0.686    0.975     12291   184.7
03-SEP-02    1.388    1.232    1.723     20948   484.7
02-SEP-02    1.690    1.313    1.924      9209   259.4
01-SEP-02    1.652    1.353    1.970      3857   106.2
31-AUG-02    1.767    1.296    1.935      3050    89.8
30-AUG-02    1.353    1.243    1.686     16904   381.1
29-AUG-02    0.993    0.612    0.810     19548   323.4
28-AUG-02    1.366    1.262    1.737     18696   425.8

The example shows that were 20,948 successful logins on 3rd Sept 2002, with each login taking approximately 1.388 secs to service.

Back to Top

How long have portlets been taking to execute?

There are some eight reports that would help with answering this question, generated by the top_portlet.sql query depending on the arguments passed. The reports generated can be organized by day or hour, averaged or summed, and sorted ascending or descending depending on your preference. The name of the file generated depends on the arguments passed to the script. In the case of the example the file generated by this report would be called top_portlet_sum_asc_byday.txt and looks like the sample below. (For brevity some of the report columns have been removed)

Top 20 Portlet Requests, by Day ( sum ascending )

                          Avg     50th     90th   Total  Cache
                          Req     Perc     Perc     Req    Hit       Req
Portlet                   sec      sec      sec    mins      %     Count
-------------------- -------- -------- -------- ------- ------ ---------
LOB_SITE_MAP            0.003    0.003    0.003     0.0  100.0         1
ISIS_PORTLET            0.003    0.003    0.003     0.0  100.0         2
EDIRECTORY              0.003    0.003    0.003     0.0  100.0         2
ECARDS                  0.003    0.003    0.004     0.0  100.0         2
EMPLOYEEDISCOUNTS       0.004    0.004    0.004     0.0  100.0         2
PRODUCTIVITY_TOOLS      0.004    0.004    0.005     0.0  100.0         2
TECHNICAL_SUPPORT       0.004    0.004    0.006     0.0  100.0         2
SELFSERVICELINK         0.003    0.003    0.003     0.0  100.0         3
HR_NAVIGATION           0.006    0.006    0.008     0.0  100.0         2
CORP_SITES              0.006    0.006    0.008     0.0  100.0         2
BBC_WORLD               0.003    0.003    0.003     0.0  100.0         5
FTAUS                   0.017    0.017    0.017     0.0    0.0         1
FTASIA                  0.025    0.025    0.025     0.0    0.0         1
FEEDBACK                0.005    0.003    0.009     0.0  100.0         5
FTMEAA                  0.031    0.031    0.031     0.0    0.0         1
FTENTL                  0.032    0.032    0.032     0.0    0.0         1
CONTACTUS               0.039    0.039    0.039     0.0  100.0         1
PAGESONMOC              0.008    0.003    0.018     0.0  100.0         5
QPALZM_INTERNAL_NEWS    0.003    0.003    0.003     0.0  100.0        13
FTESEU                  0.041    0.041    0.041     0.0    0.0         1
PARTNERLEVELS           0.041    0.041    0.041     0.0  100.0         1

The example shows that were 13 requests for the Internal News portlet. One hundred percent of these requests were served from the cache in 3/1000 of a second. There was no variance in response time as the values for average, fiftieth and ninetieth percentile request seconds are identical.

Back to Top

What is the slowest portlet?

There are four reports that would help with answering this question, generated by the top_portlet.sql query depending on the arguments passed. The reports generated can be organised by day or hour, averaged or summed, and sorted ascending or descending depending on your preference. The name of the file generated depends on the arguments passed to the script. In the case of the example the file generated by this report would be called top_portlet_sum_desc_byday.txt and looks like the sample below. (For brevity some of the report columns have been removed)

Top 20 Portlet Requests, by Day ( sum descending )

                          Avg     50th     90th   Total  Cache
                          Req     Perc     Perc     Req    Hit       Req
Portlet                   sec      sec      sec    mins      %     Count
-------------------- -------- -------- -------- ------- ------ ---------
FOLDER                  1.087    1.115    1.342     0.1    0.0         8
NEW_ON_MY_QPALZM        0.965    0.965    1.127     0.0    0.0         2
QPALZM_CNN_HOMENEW      0.120    0.003    0.467     0.0   86.7        15
COMMUNITIES             1.624    1.624    1.624     0.0    0.0         1
LOBFUNCTIONS            1.618    1.618    1.618     0.0    0.0         1
PRODUCSOLUTIONS         1.610    1.610    1.610     0.0    0.0         1
EBUSINESS               1.608    1.608    1.608     0.0    0.0         1
INDUSTRIES              1.607    1.607    1.607     0.0    0.0         1
QPALZM_PROMO            1.606    1.606    1.606     0.0    0.0         1
NEWSEVENTS              1.599    1.599    1.599     0.0    0.0         1
NAVBAR                  0.254    0.205    0.361     0.0   83.3         6
STOCK                   0.072    0.049    0.086     0.0    0.0        21
APPDEVELOPMENT          1.402    1.402    1.402     0.0    0.0         1
USABILITY               1.349    1.349    1.349     0.0    0.0         1
LINKS                   1.320    1.320    1.320     0.0    0.0         1
FEEDBACK                1.277    1.277    1.277     0.0    0.0         1
NEWS                    1.212    1.212    1.212     0.0    0.0         1
AWARDS                  1.193    1.193    1.193     0.0    0.0         1
SUP_SERVICES            1.123    1.123    1.123     0.0    0.0         1
PRICING                 0.540    0.540    0.890     0.0    0.0         2

The example shows that there were eight requests for the FOLDER portlet taking an average of 1sec per request to process. There was also no caching of the content and a variance of some 300ms between the average and the ninetieth percentile. For the request counts shown in the example, these figures are acceptable, however if the portlet in question was a popular one that received hundreds of requests per day then we would need to consider caching the content to get the response times down.

This report expects four arguments (time_unit, num_items, sortfn, sortdir). To generate the example report above, therefore, we would pass the arguments thus..

time_unit = 'day'
num_items = 20
sortfn    = 'sum'
sortdir   = 'desc'

If we re-ran the report using the following arguments, the results would represent the answer to the question 'What is the fastest portlet ?'

time_unit = 'day'
num_items = 5
sortfn    = 'sum'
sortdir   = 'asc'
Top 5 Portlet Requests, by Day ( sum ascending )

                       Avg     50th     90th   Total  Cache
                       Req     Perc     Perc     Req    Hit       Req
Portlet                sec      sec      sec    mins      %     Count
-------------------- ----- -------- -------- ------- ------ ---------
QPALZM_INTERNAL_NEWS 0.013    0.002    0.011     4.9   98.0     22088
NEW_MOC              0.014    0.002    0.012     5.2   98.0     22665
COMBINED_SEARCH      0.015    0.003    0.012     5.8   97.7     23014
LOCAL%20INFORMATION  0.017    0.017    0.017     0.0    0.0         1
SEARCH_ARCHIVE       0.017    0.017    0.017     0.0    0.0         1

Back to Top

How many total hits does the portal receive each day?

Generated by the summ_page.sql. The file generated by this report is called summ_page_byday.txt and looks like the sample below.

Page Requests Summary, by Day

               Avg
               Req   Total
Date           sec   Views
--------- -------- -------
06-SEP-02    0.524   73864
05-SEP-02    0.564  100963
04-SEP-02    0.491   71060
03-SEP-02    0.529  134606
02-SEP-02    0.659   53792
01-SEP-02    0.518   28805
31-AUG-02    0.423   23655
30-AUG-02    0.525  103625

The report shows that on September 5th there were 100,963 unique page requests.

Back to Top

Most/least popular portlets

Generated by the top_portlet.sql. The file generated by this report is called top_portlet_count_desc_byday.txt and looks like the sample below.

Top 20 Portlet Requests, by Day ( count descending )

                          Avg     50th     90th   Total  Cache
                          Req     Perc     Perc     Req    Hit       Req
Portlet                   sec      sec      sec    mins      %     Count
-------------------- -------- -------- -------- ------- ------ ---------
STOCK                   0.072    0.049    0.086     0.0    0.0        21
SSO_INTERNAL            0.004    0.003    0.007     0.0  100.0        18
FEEDBACK                0.027    0.003    0.044     0.0   88.2        17
ATWORK_NAVBAR           0.003    0.003    0.003     0.0  100.0        16
COMBINED_SEARCH         0.003    0.003    0.003     0.0  100.0        15
NEW_MOC                 0.004    0.003    0.005     0.0  100.0        15
MYORACLE_CNN_HOMENEW    0.120    0.003    0.467     0.0   86.7        15
ORACLE_INTERNAL_NEWS    0.003    0.003    0.003     0.0  100.0        13
FOLDER                  1.087    1.115    1.342     0.1    0.0         8
HOOVERS_NEWSCHOICE      0.058    0.057    0.077     0.0    0.0         6
APPSWORLD_PROMO         0.140    0.061    0.354     0.0   50.0         6
NAVBAR                  0.254    0.205    0.361     0.0   83.3         6
CNET_BUSINESS_NEWS      0.088    0.004    0.257     0.0   83.3         6
BBC_WORLD               0.003    0.003    0.003     0.0  100.0         5
FEEDBACK                0.005    0.003    0.009     0.0  100.0         5
AMAZON_SEARCH           0.151    0.011    0.409     0.0   60.0         5
CURRENCY_CONVERTER      0.010    0.004    0.021     0.0  100.0         5
PAGESONMOC              0.008    0.003    0.018     0.0  100.0         5
FAVORITES               0.248    0.246    0.268     0.0   33.3         3
SELFSERVICELINK         0.003    0.003    0.003     0.0  100.0         3
CRM_APPS                0.076    0.070    0.084     0.0    0.0         3

The example shows that the STOCK portlet was the most popular. This report expects four arguments (time_unit, num_items, sortfn, sortdir). To generate the example report above, therefore, we would pass the arguments thus..

time_unit = 'day'
num_items = 20
sortfn    = 'count'
sortdir   = 'desc'

Back to Top

How often are users viewing a page or portlet?

Generated by the stat_page.sql. The file generated by this report is called stat_page_byuser_byday.txt and looks like the sample below.

Page Requests, by Day, by User

Page ID    User                       sec   Views
---------- ------------------------ ----- -------
1546,1550  queen.of.hearts          1.410       1
1546,1550  white.rabbit             5.299       7
1546,1550  march.hare               1.013       1
1546,1550  knave.of.hearts          1.031       1
1546,1550  king.alfred              1.324       1
1546,1550  rouge.chapeau            1.500       1
1546,1550  bill.shaker              1.149       2
1546,1550  rogan.josh               2.489       1
1546,1550  mark.lard                1.008       1
1546,1550  samba.mamba              0.919       8

This report generates a breakdown of pages that have been viewed by each portal user. The report breaks on Page ID and then on User. If you would like to find out the descriptive details of the pages, you will need to issue the following query in SQL*Plus against the origin portal repository.

select name, title
from portal.wwpob_page$
where ID = [Page ID from above]

Back to Top

How many unique users have logged in each day?

Generated by the summ_uniqsess.sql. The file generated by this report is called summ_uniqsess_byday.txt and looks like the sample below.

Unique Sessions Summary, by Day
                                  Unique
Date      Host                  Sessions
--------- -------------------- ---------
03-SEP-02 www.qpalzm1.com         123064
02-SEP-02 www.qpalzm1.com          62158
01-SEP-02 www.qpalzm1.com          41885
31-AUG-02 www.qpalzm1.com          39198
30-AUG-02 www.qpalzm1.com         102490
29-AUG-02 www.qpalzm1.com         116257

The example shows that on that 3rd Sept we received 123,064 unique logins. The number of unique users can be estimated by the number of unique session_file entries. The http_user column is not sufficient, as many sites run as the PUBLIC user.

Back to Top

Which portlets were called?

Generated by the all_portlets.sql. The file generated by this report is called all_portlets_byday.txt and looks like the sample below.

Portlets Requested, by Day
                            Avg     50th     90th    Cache
                            Req     Perc     Perc      Hit   Req
Portlet                     sec      sec      sec        % Count
-------------------- ----------- -------- -------- ------- -----
EDITPAGE                   0.189    0.171    0.236     0.0    15
EDIT_GROUPS                0.284    0.193    0.553     2.4    41
LOB_SITE_MAP               0.181    0.019    0.345    57.3  2113
LOGIN_REMEMBERME           0.180    0.064    0.276    50.8  1719
MYQPALZM_PROMO             0.870    0.513    1.781     4.5   157
NEWPORTLETS_PUBLIC         0.744    0.750    0.981     0.0     3
PAGE_PROTOTYPE             0.136    0.133    0.188     0.0     7
PORTLET_REPOSITORY         0.350    0.273    0.524     7.7    13
SELECT_LOB_TAB             0.455    0.216    1.171     5.3   698

The example shows that the site map portlet was requested 2,113 times. This report can be very large, the sample report above was cut from a daily report run within Oracle that is some 16 pages long per day, so the example is a trimmed version with columns missing for brevity.

Back to Top

How many hits does each page receive each day?

Generated by the all_pages.sql. The file generated by this report is called all_pages_byday.txt and looks like the sample below.

Pages Requested, by Day
                                                               Full
                               Avg             50th     90th   Page
                               Req   Total     Perc     Perc    Hit
Page ID                        sec   Views      sec      sec   Rate
------------------------- -------- ------- -------- -------- ------
1                            0.167       4    0.169    0.208    0.0
10                           0.182       1    0.182    0.182    0.0
12362                        0.423       1    0.423    0.423    0.0
12362,12364                  1.434       1    1.434    1.434    0.0
1546                         0.245      45    0.242    0.270    0.0
1546,1548                    0.283       7    0.198    0.448   14.3
1546,1548,13894              0.212       3    0.200    0.234    0.0
1546,1550                    1.959      28    1.387    3.669    7.1
1546,1552                    0.712      11    0.711    0.756    0.0
1546,37669                   0.953       5    0.434    1.788    0.0
1546,49568                   1.653      79    1.687    2.462    6.3
1566                         0.259      20    0.252    0.292    0.0
1566,1568                    1.564      44    1.730    2.060    4.5
1566,1570                    1.321       8    1.443    1.579   12.5
1566,1572                    1.204       7    0.795    2.541   14.3
16066                        0.171       1    0.171    0.171    0.0

The example shows that Page ID 1546 was requested 45 times, and its performance was consistent, shown by the fact that the timings for average, 50th and 90th percentile have a very small variance. If you would like to find out the descriptive details of the pages, you will need to issue the following query in SQL*Plus against the origin portal repository.

select name, title
from portal.wwpob_page$
where ID = [Page ID from above]

Back to Top

How many hits does each portlet receive each day?

Generated by the all_portlets.sql. The file generated by this report is called all_portlets_byday.txt and looks like the sample below.

Portlets Requested, by Day

                     Avg  50th   90th   Total  Cache
                     Req  Perc   Perc     Req    Hit Error Timeout    Req
Portlet              sec   sec    sec    mins      % Count   Count  Count
------------------ ----- ----- ------ ------- ------ ----- ------- ------
EDITPAGE           0.189 0.171  0.236     0.0    0.0     0      0      15
EDIT_GROUPS        0.284 0.193  0.553     0.2    2.4     0      0      41
LOB_SITE_MAP       0.181 0.019  0.345     6.4   57.3     0      1    2113
LOGIN_REMEMBERME   0.180 0.064  0.276     5.2   50.8     0      1    1719
MYQPALZM_PROMO     0.870 0.513  1.781     2.3    4.5     0      0     157
NEWPORTLETS_PUBLIC 0.744 0.750  0.981     0.0    0.0     0      0       3
PAGE_PROTOTYPE     0.136 0.133  0.188     0.0    0.0     0      0       7
PORTLET_REPOSITORY 0.350 0.273  0.524     0.1    7.7     0      0      13
SELECT_LOB_TAB     0.455 0.216  1.171     5.3    5.3     0      0     698
SSO_EXTERNAL       0.184 0.181  0.218     0.0    0.0     0      0       5

The example shows that the LOB Site Map portlet was requested 2,113 times in one day, the portlet responded on average in 181 milliseconds and 57.3% of the requests were served from the cache and not generated from the repository. Interestingly, the portlet timed out once. If this figure started to rise, it would be worth investigating in the logs what was happening.

Back to Top

Request breakdown by IP address or host name

Generated by the summ_response.sql. The file generated by this report is called summ_response_byphys_byday.txt and looks like the sample below.

Response Time, by Day, by Physical Host

                               Avg     50th     90th   Total
Physical              Req      Req     Perc     Perc     Req
Host                Count      sec      sec      sec    mins
--------------- --------- -------- -------- -------- -------
lnx162              34453    0.287    0.197    0.525   164.8
sun163              25760    0.289    0.198    0.523   124.1
sco123             358338    0.279    0.133    0.723  1663.9
hpux24              71771    0.340    0.147    0.961   406.6
tru26              319267    0.260    0.132    0.717  1385.8
aix27              405758    0.250    0.133    0.674  1688.5
dg1123              33586    0.663    0.537    1.058   370.9
w3224               15860    0.597    0.672    1.027   157.7
vms23               95373    0.052    0.003    0.108    82.8
osx24               71179    0.025    0.004    0.042    30.2

The example shows the physical requests served by each machine within the portal farm. By passing the argument 'IP' to the report, the physical host names would be replaced with IP addresses.

Back to Top

Summary

There are many administrative and management questions that arise when implementing and running a corporate portal. The scripts described in this technote will help administrators to answer some of those questions.

In the technote 'Performance Monitoring with mod_plsql in OracleAS Portal ' a detailed explanation of how to set up daily logging scripts is given, such that the whole process of running and generating the statistics may be automated.

Back to Top

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065, USA
http://www.oracle.com/
Worldwide Inquiries:
1-800-ORACLE1
Fax 650.506.7200

Copyright and Corporate Info

Oracle Corporation Logo

 

E-mail this page
Printer View Printer View
Oracle Is The Information Company About Oracle | Oracle RSS Feeds | Careers | Contact Us | Site Maps | Legal Notices | Terms of Use | Privacy