Central Note for Performance of EP KMC
[central bank note] [high performance] [performance] [performance bond]
- Configurable sales UI: Initial screen performanceSymptom You create a sales document in the configurable sales user interface (UI). On the initial screen, the response time is longer than necessary after user inputs or selections. Other terms ISR,...
Symptom
Central note regarding performance in EP Knowledge Management and Collaboration (KMC), Additions to the relevant How to Guide.
Reason and Prerequisites
Where to find KM Performance HowTo Guide
The Performance Guide “How to Tune the Performance of Knowledge Management” can be found in SAP Service Marketplace: http://www.sdn.sap.com/irj/sdn/howtoguides ->
SAP NetWeaver 7.0 How-to Guides -> User Productivity EnablementSAP NetWeaver 2004 How-to Guides -> Knowledge Management, TREX, and Collaboration
Solution
Corrections to How-to…Tune the Performance of Knowledge Management, Version 1.4 – January 2009
The information in the following section:
Performance-Optimized KM Configuration -> Setting Write-Protection Mode for the Folder /etc/public (valid for SAP NetWeaver 7.0 SPS 10 and SAP NetWeaver 2004 SPS19 only)
also applies to SAP NetWeaver 7.0 SPS11The information in the following section:
Performance-Optimized KM Configuration -> Caching Static Resources in the Browser Cache of the Client PC (as of SAP NetWeaver 7.0 SPS 11 and SAP NetWeaver 2004 SPS20)
does not apply to SAP NetWeaver 7.0 SPS11. It is relevant for SAP NetWeaver 7.0 SPS12 and higher, and SAP NetWeaver 6.40 SPS20 and higher.
With NW04 SP20 / NW 7.0 SP12, setting resources on /etc to “read-only” for performance improvement is no longer necessary.
These releases introduce a new service which makes manual changes to the permissions on the file system obsolete. Therefore, it is no longer required, and also not recommended, to set the public/mimes directory or its contents to “read-only”.
Performance improvements of NW04 SP19 and NW 7.0 SP10
This versions delivers significant improvements with respect to KM performance. Most notably, the following scenarios have been improved:
Entering a Collaboration Room: The time to enter a Collaboration Room, for example by clicking on a Room in the Room directory, has been significantly reduced. This has been achieved by reducing the number of accesses to the data base.Room directory: A new version of the Room directory is available, which displays significantly faster. Rather than rendering the Room directory every time it is being displayed, the HTML output is rendered only on the first access after a change and then cached. Future accesses produce the cached HTML unless there have been changes. The old version of the Room directory is still active by default. For instructions on how to enable Room Directory light please see below.
How to enable Room directory light:a) Logon to the Portal as Admin Userb) Go to System Administration -> System Configuration -> Collaboration -> Light Room Directoryc) Again “Light Room Directory” (this is not a typo, both are called Light Room Directory)d) Edit, switch to Advanced Modee) Check ‘Use light room directory’, Click on OK
Additions to the KM Performance How To Guide 1.1 (contained in the published Performance Howto Guide 1.20)
Addition regarding performance improvements by setting files to write-protected:
In all releases higher or equal to SPS13, this is not only possible for the /etc repository (sfs), but generally for all CM repositories in DB or DBFS persistence mode.
When a resource is set to read-only, it returns the time that is set under “Read-only Content Expiry Delay” (advanced configuration of the cm repository manager) as expiration time.Enable ACL cache & cache lifetime restart:
When using ACL (access control lists), caching the ACL data generally improves the response time. The two caches ca_cm_rep_acl and ca_rsrc_acl are used to store ACL information.
To configure these caches:a) Log on to the portal as Administatorb) Navigate to System Administration > System Configuration > Knowledge Management > Content Management > Utilities > Caches > Memory Cachec) Both for ca_cm_rep_acl and ca_rsrc_acl:
- Select the cache in the memory cache list
- Click on ‘Edit’, Click on ‘Show Advanced Options’
- Set the values as follows:
Restart lifetime on access: checked
Capacity: 10.000
Default Time-to-Live (0=infinite): 1.800
Singleton: checked
Assumed Entry Size: 0
Max Cache Size: 0
Max Entry Size: 0
- Click on OKFor all repositories that use ACLs, make sure that the ACL cache is configured. To do so:a) Log on to the portal as Administatorb) Navigate to System Administration > System Configuration > Knowledge Management > Content Management > Repository Managers > CM Repositoryc) For each repository using ACLs
- Select the repository in the CM repository list
- Click on ‘Edit’
- Set the values as follows:
Security Manager: AclSecurityManager
ACL Manager Cache: ca_rsrc_acl
- Click on ‘OK’Improving the performance of folder navigation
In order to improve the performance during folder navigation, you can remove the context menu, like shown in the SimpleExplorer layoutset example. Content managers can define the SimpleExplorer as default and also end users can personalize their iViews to use the SimpleExplorer.
Additions to the KM Performance HowTo Guide 1.0 (contained in the published Performance Howto Guide 1.1)
1. Note that running the SAP portal with the HTTPS protocol rather than HTTP impacts performance (both throughput and response time) by about 10%.2. Another performance hint for section 5:
Drive letters should always be stated in lower case.
Doing so avoids expensive system calls.3. Regarding System Updates:
Section 5 states in the first bullet point that you should set “all objects in the folder public in the repository /etc to write-protected…” This statement is still valid. However, it is important to note that this change has to be UNDONE before system updates. Otherwise the updates may fail.
Future updates may be built in a way to undo the write-protection automatically.4. Clarification on setting objects in /etc – write-protected
Do NEITHER set the complete etc folder NOR the entire repository to write-protected – only the ‘PUBLIC’ folder below etc !
Otherwise relevant system functionalities like XMLForms or Crawler will be affected.
All KMC gif files are stored in that ‘public’ folder, hence caching on client side reduces loading time significantly. Also the traffic in the backend CM is reduced, less operations and resources are saved.5. Storage of rendering relevant resources in KM repositories
If resources, relevant for rendering (e.g. images, gif files) are to be stored in any KM repository assure that this repository is adjusted to that – no unneeded repository services as e.g. ‘accessstatistic’ must be assigned as these are very expensive on access, this might have high impact on the performance.
Do not use standard delivered repository configuration as those are not optimized for such project specific adoption. See documentation for info on specific repository services.
Performance improvement of SAP enhancement Package 1 for SAP NetWeaver 7.0
1. As of SAP Enhancement Package 1 for SAP NetWeaver 7.0 it is possible to configure certain MIME resources to be cached forever in the Web browser without losing the flexibility to change the resources on the server side.
To optimize performance, change the Cache Timeout value for the SAP standard configuration etcPattern to -1. As a result, all MIME objects coming from the configured path and matching the configured MIME types are cached forever in the Web browser. The browser retrieves the objects from the server only if the image file is modified. However, the browser does not retrieve the modified image immediately because of the small cache that stores the resource URLs for one minute. Thus, it may take up to one minute for the browser to display the modified image.
Note: Set the Cache Timeout value to -1 for KM resources, only. It is required that the code of the application that generates the HTML containing links to the affected MIME resources uses the KM service URL Generator Service. Thus, the feature is supported for KM resources only.
FAQ section
Q: How to optimize the performance when browsing in repositories?
A: Files and folders that do not need to be changed through the portal can be set to “read-only”. Then they can be stored in the local browser cache.
This setting is done via resource details dialog -> Settings -> Properties -> Read-Only.
With that setting content can not be updated anymore via CM UI, properties can still be updated.
If a folder is set to read-only, no children can be created anymore, existing resources below can be deleted, moved or changed.
When a resource is set to read-only, it returns the time that is set under “Read-only Content Expiry Delay” (advanced configuration of the cm store) as expiration time. Before this time (measured in seconds) has passed, clients that have a local copy of the resource in their caches will not request them from the server, thus saving download time.
In the /etc repository, the default setting for Read-only Content Expiry Delay is 600 (10 minutes). For other repositories, the parameter has to be adjusted by the administrator.
Update: Do not set resources in the /etc repository to read-only in KMC versions NW04 >= SP 20 and NW04s >= SP11.
Q: Does it make a difference whether using the admin explorer or consumer explorer layoutset?
A: The performance of FlexibleUI layouts strongly depends on the complexity of the layout, the number of resources displayed on one page and the number and type of commands assigned to the resources.
The admin explorer layoutset for example does not only show a longer than normal list of documents but also a folder list on the left-hand side. Moreover it offers a comprehensive set of complex commands needed for administrative tasks. These additional features create a server load which is three times as high as that of the consumer explorer layoutset. An even faster layoutset is the SimpleExplorer which reduces the command set to an absolute minimum.
Q: I want to make several subsets of documents available to different employees. Is it a good idea to store all documents within one folder and to use ACLs to control access?
A: This would create unneccessary server load because every time that the contents of the folder are listed, every document’s access rights have to be checked. Especially when there are lots of documents and the number of accessible documents is low, too much time will be consumed with these checks. A better solution would be to store the documents in different folders and to create certain ACLs for each folder.
Q: I would like a tree-view of documents, just like in the admin explorer. Which layoutset should I use?
A: The ConsumerTreeList fits these needs very well. It is just about twice as fast as the AdminExplorer. But it does not support mass commands and offers fewer commands.
1. Reduce the number of documents within the folder to 1000 (max.).2. Select layoutsets of the standard delivery in this order: SimpleExplorer (least functional but best performing), ConsumerExplorer, ConsumerTreeList, AdminExplorer (most functional but time-consuming).3. Reduce the number of configured commands.