Sap business objects financial consolidation

3,636 views
3,357 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,636
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
122
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sap business objects financial consolidation

  1. 1. SAP Business Objects Financial ConsolidationTuning Best Practices GuideVersion 1, October 2009
  2. 2. TUNING GUIDESAP BUSINESS OBJECTS FINANCIALCONSOLIDATION Typographic Conventions Icons Type Style Represents Icon MeaningExample Words or characters quoted CautionText from the screen. These include field names, screen Example titles, pushbuttons labels, menu names, menu paths, and menu options. Note Cross-references to other documentation. RecommendationExample Emphasized words or phrasestext in body text, graphic titles, Syntax and table titles.EXAMPLE Technical names of systemTEXT objects. These include report names, program names, transaction codes, table names, and key concepts of a programming language when they are surrounded by body text, for example, SELECT and INCLUDE.Example Output on the screen. Thistext includes file and directory names and their paths, messages, names of variables and parameters, source text, and names of installation, upgrade and database tools.Example Exact user entry. These aretext words or characters that you enter in the system exactly as they appear in the documentation.<Example Variable user entry. Angletext> brackets indicate that you replace these words and characters with appropriate entries to make entries in the system.EXAMPLE Keys on the keyboard, forTEXT example, F2 or ENTER.
  3. 3. TUNING GUIDE SAP BUSINESS OBJECTS FINANCIAL CONSOLIDATIONContents 1 INTRODUCTION ....................................................................................................................... 52 BFC TECHNICAL ARCHITECTURE ........................................................................................ 53 TUNING BFC INFRASTRUCTURE .......................................................................................... 8Application Server .............................................................................................................................................................................. 8 Monitoring Tools ............................................................................................................................................................................. 8 OS Optimization ............................................................................................................................................................................ 12 BFC tracing .................................................................................................................................................................................... 24 Optimizing BFC Transfer .............................................................................................................................................................. 26Web Server ........................................................................................................................................................................................ 27 Monitoring Tools ........................................................................................................................................................................... 32 OS Optimization ............................................................................................................................................................................ 39Citrix/TSE Server ............................................................................................................................................................................. 39 General Information ....................................................................................................................................................................... 39 Bandwidth Required by ICA Protocol ........................................................................................................................................... 40 Desktop Versus Published Application Connection ...................................................................................................................... 40 Application Installation .................................................................................................................................................................. 41Database Server ................................................................................................................................................................................ 42 Oracle Database ............................................................................................................................................................................. 46 SQL Server database ...................................................................................................................................................................... 684 APPLICATION TUNING ..........................................................................................................74Performance: A Few Reminders ..................................................................................................................................................... 74Data Collection .................................................................................................................................................................................. 74 Validating the Data Volume .......................................................................................................................................................... 74 Checking the Standards Calculations ............................................................................................................................................. 75 Limiting External Calculations ...................................................................................................................................................... 76 Avoiding Package Rules ................................................................................................................................................................ 76Data Processing ................................................................................................................................................................................. 77 Checking the Consolidation logs ................................................................................................................................................... 77 Using SQL Rules Sparingly ........................................................................................................................................................... 77Data Retrieval ................................................................................................................................................................................... 78 Selecting Data Properly ................................................................................................................................................................. 78 Designing Simple Web Reports ..................................................................................................................................................... 79 Creating index(es) on Data Tables ................................................................................................................................................. 79Application ........................................................................................................................................................................................ 80
  4. 4. Tuning Best Practices Guide 4Business Objects Financial Consolidation Calibrating the Operating IT Platform ........................................................................................................................................... 80©SAP AG 2009
  5. 5. Tuning Best Practices Guide 5Business Objects Financial Consolidation1 IntroductionThis Best Practice document describes the technical architecture of BusinessObjects Financial Consolidation andprovides several tips and tricks to optimize the separate system components. In addition, section 4 includesmiscellaneous recommendations to optimize the performance from an application point of view.Besides this document, the following further Best Practice documents for BusinessObjects Financial Consolidation areavailable: - Troubleshooting Guide - Volume Test Optimization - System Monitoring & Administration2 BFC Technical ArchitectureSAP BusinessObjects Financial Consolidation is a consolidation and management reporting solution. The solutionprovides full process control and data transparency, permitting simulation of unlimited scenarios that address allperformance management reporting requirements of an organization.All calculations and consolidations occur in the database. The solution combines legal and management reportingstructures into one process, permitting consolidation and direct comparison of all possible views in one integrated datamodel. The integrated data model also allows organizations to perform side-by-side, what-if simulations.SAP BusinessObjects Financial Consolidation uses multi-tier client/server architecture. The presentation layer(Windows and Web interfaces), the functional layer, and the data layer have been developed as independent modulesfor Windows Intel 32-bit in an environment comprised of Microsoft Visual C++, DCOM, Microsoft Visual C#, .NET,ASP.NET and DHTML with a strong object-oriented design.SAP BusinessObjects Financial Consolidation is a multi-thread application. This means that it can use all of theprocessors available on the server simultaneously and automatically (scaling-in, that is, increasing the number ofprocessors on a single server). This applies to all of the components: database servers, application servers, HTTPservers and Windows TS/Citrix servers.SAP BusinessObjects Financial Consolidation also supports a multi-server architecture (scaling-out). You can thereforeincrease the number of servers to adapt to the growing number of users with increased availability and deploymentflexibility. This applies to all of the components except for the database servers.©SAP AG 2009
  6. 6. Tuning Best Practices Guide 6Business Objects Financial Consolidation Software components in the SAP BusinessObjects Financial Consolidation architectureYou can install the components on different computers. In a standalone configuration, all of the components will beinstalled on the same computer.The first tier consists of the database server, which contains all of the data that SAP BusinessObjects FinancialConsolidation processes. All of the data in the application is stored here.The second tier consists of the application server. Its main function is to ensure that the link between the client andthe database exists. This enables you to install the database client and OLE DB drivers on the application server andnot on each client computer. The application server also generates the HTML pages requested by the Web clients. Itrepresents the only source for connections to the database. This configuration uses a cache that speeds up processingand limits the need for retrieving data directly from the database, which is slower to access. The size of the applicationserver cache will be adapted to the specific use of the application as specified in the Technical handbook report. Allbackground processing is run on the application server.The third tier consists of the SAP BusinessObjects Financial Consolidation client and can be: SAP BusinessObjects Financial Consolidation Windows client SAP BusinessObjects Financial Consolidation Web client (Internet Explorer) SAP Excel (if Excel Link is used)Web clients and Web Excel Link will require a HTTP server to access the application server.In SAP BusinessObjects Financial Consolidation there is no direct communication between application servers. Allapplication exchanges are done via database synchronization mechanisms.The client is directed the first time by the CtBroker component to one application server instance (loadbalancingalgorithm). During the whole session life, the client is still attached at the same application server.©SAP AG 2009
  7. 7. Tuning Best Practices Guide 7Business Objects Financial ConsolidationExcept the HTTP based connection, all other connections are permanent client/server connections. Flow type Description Used Protocol CW-REQ WEB client (IE/Excel via http) request to the WEB server (IIS/ASP.Net engine) HTTP WC-RES WEB server response to WEB client HTTP WA-REQ WEB server (ASP.Net engine) to application server request DCOM AW-RES Application server to WEB server (ASP.Net engine) response DCOM WB-REQ WEB server to broker request (only for connection request) DCOM BW-RES Broker to WEB response (only for connection request) DCOM CC-REQ CITRIX client (Finance.exe/ Excel.exe via DCOM) to the CITRIX server request ICA CC-RES CITRIX server to CITRIX client response ICA CA-REQ CITRIX server (Finance.exe/Excel.exe) to application server request DCOM AC-RES Application server to CITRIX server (Finance.exe/Excel.exe) response DCOM CB-REQ CITRIX server to broker request (only for connection request) DCOM BC-RES Broker to CITRIX response (only for connection request) DCOM CTRL Broker – Application server check communication DCOM AD-REQ Application server (ctserver.exe) to database query (SQL) OleDB/TCPIP DA-RES Database server to application server response (ROWSET) OleDB/TCPIP©SAP AG 2009
  8. 8. Tuning Best Practices Guide 8Business Objects Financial Consolidation3 Tuning BFC InfrastructureApplication ServerThe application server performs the following tasks: • Manages user connections using the DCOM protocol • Connects to the database using OLE DB to manage the connection pool • Uses internal applicative caching for the most frequently used objects • Runs the processing required for ensuring data integrity and for locking objects • Generates HTML pages for the Web clients • Runs batch processingThe main function of the application server is to ensure that the link between the SAP BusinessObjects FinancialConsolidation clients and the database exists. The cache bridges the database and client computers and improvesperformance.The application server runs the processing required for the consolidation and transmission of data, partially formats thedata retrieved, and runs report bundles.The application server also runs the processing required by the web clients. The SAP BusinessObjects FinancialConsolidation web enables client computers that do not have the application installed on their computers use InternetExplorer to access the application. Users can perform the same operation tasks using the same setup as the Windowsclient.To be able to use the financial consolidation web application, you need to install a HTTP server. You must also installactivePDF Server, which is used for printing reports, on the application server. By configuring SAP BusinessObjectsFinancial Consolidation with multiple application servers connected to the same database, you can manage a largenumber of concurrent user connections easily and ensure that the system is fault tolerant.Note: The application server is identified by the CtServer.exe process.Monitoring ToolsMonitoring the servers consists of the following tasks:  Verify that the processes ctbroker.exe, ctserver.exe, ctcontroller.exe, and apserver.exe are up and running.  Monitor resource consumption (mainly the CPU and memory).  Configure log monitoring. SAP BusinessObjects Financial Consolidation Application & CtBroker Servers Name Description This executable process corresponds to the data source manager : ctbroker.exe It calls up Ctserver.exe, CtController.exe and the BusinessObjects Finance Web connector (via a HTTP query). It is called up by Finance.exe and the BusinessObjects Finance Web connector. For each environment BusinessObjects Finance, it contains:©SAP AG 2009
  9. 9. Tuning Best Practices Guide 9Business Objects Financial Consolidation the list of application servers, source ODBC/OLEDB and information of connection to the base, and the URL used by the Web server if so, etc. It is the main component of the BusinessObjects Finance application server; it manages connections between Windows ctserver.exe BusinessObjects Finance clients and database. Ctserver.exe is a system process, listed in the Windows Task Manager. This process can be managed neither by the Net start/Net stop command nor by the Windows Control Panel. CtController.exe CtController.exe is a service. His main purpose is to synchronize the CtServer instances. Apserver.exe It is the process of ActivePDF Server. It‘s a service.These processes must be monitored – if they disappear this may reveal a lack in application availability. By default, youhave 1 CtServer process per application server, 1 CtController per application server and 1 Apserver.exe process perapplication server. There can only be a single CtBroker.exe module in each BusinessObjects Financial Consolidationenvironment.Certain processes sometimes use a lot of system resources (CPU, memory and disk access). As a result, if heavydemands are placed on the servers (application servers or RDBMS), a general system overload occurs and not all ofthe queries can be handled at the same time.To evaluate the platform load and monitor resource consumption (mainly in the CPU and memory), you can use a toolsupplied by Microsoft. This tool is known as Perfmon and is available in Windows. It enables you to monitor theplatform using a system of counters that can subsequently be analyzed. In these situations, we recommend that you monitor certain performance indicators, memory use, and so on.You can use the Microsoft tool Performance Analyzer to do so.To run Perfmon on an English language operating system and to load the template provided by SAP Support, pleasecarry out the following steps:- Click on Start then Run… Enter perfmon in the window that will open- In the console root, go to Performance Logs and alerts and then Counter Logs©SAP AG 2009
  10. 10. Tuning Best Practices Guide 10Business Objects Financial Consolidation- To the right of the window, right click and then select New Logs Settings From. Next, select the filelog_SAP_us_vX.htm (where X depends on the file version).- Choose OK twice.- Adjust the settings so that the log meets your requirements. Choose OK.- Right-click the new log generated, and select Start to start the monitoring tool‘s log.Once the logs have been generated, you must transfer them to SAP Support for analysis. On the basis of these logs,together with the Magnitude logs for the period during which you encountered problems, our Support team will analyzethe causes of these anomalies. You will receive the result of this analysis in the form of a chart. Here is an example of a Perfmon template. It is only valid for English language operating systems.<!-- ************************************ --><!-- Company : SAP --><!-- Description : Perfmon Template for --><!-- OS in english ONLY --><!-- ************************************ --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">©SAP AG 2009
  11. 11. Tuning Best Practices Guide 11Business Objects Financial Consolidation<HTML><HEAD><META NAME="GENERATOR" Content="Microsoft System Monitor"></HEAD><BODY><OBJECT ID="DISystemMonitor1" WIDTH="100%" HEIGHT="100%" CLASSID="CLSID:C4D2D8E0-D1DD-11CE-940F-008029004347"><PARAM NAME="_Version" VALUE="196611"><PARAM NAME="LogName" VALUE="log_SAP_us_v3"><PARAM NAME="Comment" VALUE=""><PARAM NAME="LogType" VALUE="0"><PARAM NAME="CurrentState" VALUE="0"><PARAM NAME="RealTimeDataSource" VALUE="1"><PARAM NAME="LogFileMaxSize" VALUE="-1"><PARAM NAME="DataStoreAttributes" VALUE="33"><PARAM NAME="LogFileBaseName" VALUE="log_SAPus"><PARAM NAME="LogFileSerialNumber" VALUE="1"><PARAM NAME="LogFileFolder" VALUE="C:PerfLogs"><PARAM NAME="Sql Log Base Name" VALUE="SQL:!log_SAP_us"><PARAM NAME="LogFileAutoFormat" VALUE="1"><PARAM NAME="LogFileType" VALUE="0"><PARAM NAME="StartMode" VALUE="0"><PARAM NAME="StopMode" VALUE="3"><PARAM NAME="StopAfterUnitType" VALUE="4"><PARAM NAME="StopAfterValue" VALUE="1"><PARAM NAME="RestartMode" VALUE="3"><PARAM NAME="LogFileName" VALUE="C:PerfLogslog_SAP_us_000001.csv"><PARAM NAME="EOFCommandFile" VALUE=""><!-- Basic counters --><PARAM NAME="Counter00001.Path" VALUE="MemoryAvailable MBytes"><PARAM NAME="Counter00002.Path" VALUE="MemoryPage Faults/sec"><PARAM NAME="Counter00003.Path" VALUE="MemoryPages/sec"><PARAM NAME="Counter00004.Path" VALUE="PhysicalDisk(_Total)Avg. Disk Queue Length"><PARAM NAME="Counter00005.Path" VALUE="PhysicalDisk(_Total)Avg. Disk Read Queue Length"><PARAM NAME="Counter00006.Path" VALUE="PhysicalDisk(_Total)Avg. Disk sec/Transfer"><PARAM NAME="Counter00007.Path" VALUE="PhysicalDisk(_Total)Avg. Disk Write Queue Length"><PARAM NAME="Counter00008.Path" VALUE="PhysicalDisk(_Total)Current Disk Queue Length"><PARAM NAME="Counter00009.Path" VALUE="PhysicalDisk(_Total)Disk Read Bytes/sec"><PARAM NAME="Counter00010.Path" VALUE="PhysicalDisk(_Total)Disk Reads/sec"><PARAM NAME="Counter00011.Path" VALUE="PhysicalDisk(_Total)Disk Transfers/sec"><PARAM NAME="Counter00012.Path" VALUE="PhysicalDisk(_Total)Disk Write Bytes/sec"><PARAM NAME="Counter00013.Path" VALUE="PhysicalDisk(_Total)Disk Writes/sec"><PARAM NAME="Counter00014.Path" VALUE="Processor(_Total)% Processor Time"><PARAM NAME="Counter00015.Path" VALUE="Processor(0)% Processor Time"><PARAM NAME="Counter00016.Path" VALUE="Processor(1)% Processor Time"><PARAM NAME="Counter00017.Path" VALUE="Processor(2)% Processor Time"><PARAM NAME="Counter00018.Path" VALUE="Processor(3)% Processor Time"><!-- CtServer counters [3 instances] --><PARAM NAME="Counter00018.Path" VALUE="Process(ctserver#1)% Processor Time"><PARAM NAME="Counter00019.Path" VALUE="Process(ctserver#1)Page Faults/sec"><PARAM NAME="Counter00020.Path" VALUE="Process(ctserver#1)Private Bytes"><PARAM NAME="Counter00021.Path" VALUE="Process(ctserver#1)Virtual Bytes"><PARAM NAME="Counter00022.Path" VALUE="Process(ctserver#2)% Processor Time"><PARAM NAME="Counter00023.Path" VALUE="Process(ctserver#2)Page Faults/sec"><PARAM NAME="Counter00024.Path" VALUE="Process(ctserver#2)Private Bytes"><PARAM NAME="Counter00025.Path" VALUE="Process(ctserver#2)Virtual Bytes"><PARAM NAME="Counter00026.Path" VALUE="Process(ctserver)% Processor Time"><PARAM NAME="Counter00027.Path" VALUE="Process(ctserver)Page Faults/sec"><PARAM NAME="Counter00028.Path" VALUE="Process(ctserver)Private Bytes"><PARAM NAME="Counter00029.Path" VALUE="Process(ctserver)Virtual Bytes"><!-- Oracle counters [2 instances] --><PARAM NAME="Counter00066.Path" VALUE="Process(oracle#1)% Processor Time"><PARAM NAME="Counter00067.Path" VALUE="Process(oracle#1)Page Faults/sec"><PARAM NAME="Counter00068.Path" VALUE="Process(oracle#1)Private Bytes"><PARAM NAME="Counter00069.Path" VALUE="Process(oracle#1)Virtual Bytes"><PARAM NAME="Counter00070.Path" VALUE="Process(oracle)% Processor Time"><PARAM NAME="Counter00071.Path" VALUE="Process(oracle)Page Faults/sec"><PARAM NAME="Counter00072.Path" VALUE="Process(oracle)Private Bytes"><PARAM NAME="Counter00073.Path" VALUE="Process(oracle)Virtual Bytes"></OBJECT></BODY></HTML>©SAP AG 2009
  12. 12. Tuning Best Practices Guide 12Business Objects Financial ConsolidationIn case of troubleshooting, you can consult the following information:  Windows events logOS Optimization If changes should be done on the applications servers, it is recommended to change one parameter at a time tosee what performance improvements are offered. If system performance decreases after making a change, then youneed to reverse the change.Processor SchedulingWindows uses preemptive multitasking to prioritize process threads that the CPU has to attend to. Preemptivemultitasking is a methodology whereby the execution of a process is halted and another is started, at the discretion ofthe operating system. This prevents a single thread from monopolizing the CPU.Switching the CPU from executing one process to the next is known as context-switching.The Windows operating system includes a setting that determines how long individual threads are allowed to run on theCPU before a context-switch occurs and the next thread is serviced. This amount of time is referred to as a quantum.This setting lets you choose how processor quanta are shared between foreground and background processes. We recommend selecting Background services so that all programs receive equal amounts of processor time.To change this:1. Open the System Control Panel.2. Select the Advanced tab.3. Within the Performance frame, click Settings.4. Select the Advanced tab.©SAP AG 2009
  13. 13. Tuning Best Practices Guide 13Business Objects Financial ConsolidationModifying the value using the control panel applet as described above modifies the following registry value to affect theduration of each quantum:HKEY_LOCAL_MACHINESystemCurrentControlSetControlPriorityControlWin32PrioritySeparationThis setting is the preferred setting for most servers.The Win32PrioritySeparation Registry values in Windows Server 2003 are:_ 0x00000026 (38) for best performance of Programs_ 0x00000018 (24) for best performance of Background services.These values remain the same between the 32-bit (x86) and 64-bit (x64) editions of the Windows Server 2003operating system.We strongly recommend you use only the control panel for these settings so you always get valid, appropriate,operating system revision-specific and optimal values in the registry.Virtual MemoryMemory paging occurs when memory resources required by the processes running on the server exceed the physicalamount of memory installed. Windows, like most other operating systems, employs virtual memory techniques thatallow applications to address greater amounts of memory than what is physically available. This is achieved by settingaside a portion of disk for paging. This area, known as the paging file, is used by the operating system to page portionsof physical memory contents to disk, freeing up physical memory to be used by applications that require it at a given©SAP AG 2009
  14. 14. Tuning Best Practices Guide 14Business Objects Financial Consolidationtime. The combination of the paging file and the physical memory installed in the server is known as virtual memory.Virtual memory is managed in Windows by the Virtual Memory Manager (VMM).Physical memory can be accessed at exponentially faster rates than disk. Every time a server has to move databetween physical memory and disk will introduce a significant system delay.While some degree of paging is normal on servers, excessive, consistent memory paging activity is referred to asthrashing and can have a very debilitating effect on overall system performance. Thus, it is always desirable tominimize paging activity. Ideally servers should be designed with sufficient physical memory to keep paging to anabsolute minimum.The paging file, or pagefile, in Windows, is named PAGEFILE.SYS.Virtual memory settings are configured through the System control panel. To configure the page file size:1. Open the System Control Panel.2. Select the Advanced tab.3. Within the Performance frame, click Settings.4. Select the Advanced tab.5. Click Change.Windows Server 2003 has introduced new settings for virtual memory configuration, including letting the systemmanage the size of the page file, or to have no page file at all. If you let Windows manage the size, it will create apagefile of a size equal to physical memory + 1 MB. This is the minimum amount of space required to create a memorydump in the event the server encounters a STOP event (blue screen).A pagefile can be created for each individual volume on a server, up to a maximum of sixteen pagefiles and amaximum 4 GB limit per pagefile. This allows for a maximum total pagefile size of 64 GB. The total of all pagefiles onall volumes is managed and used by the operating system as one large pagefile.©SAP AG 2009
  15. 15. Tuning Best Practices Guide 15Business Objects Financial ConsolidationWhen a pagefile is split between smaller pagefiles on separate volumes as described above, when it needs to write tothe pagefile, the virtual memory manager optimizes the workload by selecting the less busy disk based on internalalgorithms. This ensures best possible performance for a multiple-volume pagefile.While not best practice, it is possible to create multiple pagefiles on the same operating system volume. This isachieved by placing the pagefiles in different folders on the same volume. This change is carried out through editingthe system registry rather than through the standard GUI interface. The process to achieve this is outlined in MicrosoftKB article 237740:http://support.microsoft.com/?kbid=237740Configuring the Pagefile for Maximum Performance GainOptimal pagefile performance will be achieved by isolating pagefiles to dedicated physical drives running on RAID-0(striping) or RAID-1 (mirroring) arrays, or on single disks without RAID at all. Redundancy is not normally required forpagefiles, though performance might be improved through the use of some RAID configurations.By using a dedicated disk or drive array, this means PAGEFILE.SYS is the only file on the entire volume and risks nofragmentation caused by other files or directories residing on the same volume. As with most disk-arrays, the morephysical disks you have in the array, the better the performance is. When distributed between multiple volumes onmultiple physical drives, the pagefile size should be kept uniform between drives and ideally on drives of the samecapacity and speed. We strongly recommend against the use of RAID-5 arrays to host pagefiles, as pagefile activity is write intensiveand thus not suited to the characteristics of RAID-5.Where pagefile optimization is critical, do not place the pagefile on the same physical drive as the operating system,which happens to be the system default. If this must occur, ensure that the pagefile exists on the same volume(typically C:) as the operating system. Putting it on another volume on the same physical drive will only increase diskseek time and reduce system performance, since the disk heads will be continually moving between the volumes,alternately accessing the page file, operating system files, and other applications and data. Remember too that the firstpartition on a physical disk is closest to the outside edge of the physical disk, the one typically hosting the operatingsystem, where disk speed is highest and performance is best.Note if you do remove the paging file from the boot partition, Windows cannot create a crash dump file(MEMORY.DMP) in which to write debugging information in the event that a kernel mode STOP error message (―bluescreen of death‖) occurs. If you do require a crash dump file, then you will have no option but to leave a pagefile of atleast the size of physical memory + 1 MB on the boot partition.We recommend setting the size of the pagefile manually. This normally produces better results than allowing the serverto size it automatically or having no pagefile at all.©SAP AG 2009
  16. 16. Tuning Best Practices Guide 16Business Objects Financial ConsolidationBest-practice tuning is to set the initial (minimum) and maximum size settings for the pagefile to the same value. Thisensures that no processing resources are lost to the dynamic resizing of the pagefile, which can be intensive. This isespecially given this resizing activity is typically occurring when the memory resources on the system are alreadybecoming constrained.Setting the same minimum and maximum pagefile size values also ensure that the paging area on a disk is one single,contiguous area, improving disk seek time.Windows Server 2003 automatically recommends a total paging file size equal to 1.5 times the amount of installedRAM. On servers with adequate disk space, the pagefile on all disks combined should be configured up to twice thephysical memory for optimal performance. The only drawback of having such a large pagefile is the amount of diskspace consumed on the volumes used to accommodate the pagefile(s). Servers of lesser workloads or those tight ondisk space should still try to use a pagefile total of at least equal to the amount of physical memory.Creating the whole pagefile in one step reduces the possibility of having a partitioned pagefile and therefore improvessystem performance.The best way to create a contiguous static pagefile in one step is to follow this procedure for each pagefile configured: 1. Remove the current page files from your server by clearing the Initial and Maximum size values in the Virtual Memory settings window or by clicking No Paging File, then clicking Set. 2. Reboot the machine and click OK. Ignore the warning message about the page file. 3. Defragment the disk you want to create the page file on. This step should give you enough continuous space to avoid partitioning of your new page file. 4. Create a new pagefile with the desired values 5. Reboot the server.An ever better approach is to re-format the volume entirely and create the pagefile immediately before placing any dataon the disk. This ensures the file is created as one large contiguous file as close to the very outside edge of the disk aspossible, ensuring no fragmentation and best disk access performance. The work and time involved in moving data toanother volume temporarily to achieve this outcome often means, however, that this procedure is not alwaysachievable on a production server.Measuring Pagefile UsageA good metric for measuring pagefile usage is Paging file: %Usage Max in the Windows System Monitor. If this revealsconsistent use of the pagefile, then consider increasing the amount of physical memory in the server by this amount.For example, if a pagefile is 2048 MB (2 GB) and your server is consistently showing 10% usage, it would be prudentto add an additional say 256 MB RAM.Disabling or Removing Unnecessary Services©SAP AG 2009
  17. 17. Tuning Best Practices Guide 17Business Objects Financial ConsolidationWhen Windows is first installed, many services are enabled that might not be necessary for the application server.While in Windows Server 2003 many more services are disabled by default than in previous editions of the serveroperating system, there still remains, on many systems, an opportunity for improving performance further by examiningrunning services.Inexperienced users might also inadvertently add additional services when installing or updating the operating systemthat are not actually required for a given system. Each service requires system resources and, as a result, it is better todisable unnecessary services to improve performance.Disabling services should be done with care. Unless you are completely certain of the purpose of a given service it isrecommended to research it further before choosing to disable it. Disabling some services that the operating systemrequires to be running can render a system inoperable and possibly unable to boot.To view the services running in Windows, complete the following steps:1. Right-click My Computer and select Manage.2. Expand the Services and Applications icon.3. Select the Services icon.4. Click the Standard tab at the bottom of the right-pane. All the services installed on the system are displayed. Thestatus, running or not, is shown in the third column.5. Click twice on Status at the top of the third column shown. This sorts all running (Started) services from those thatare not running.From this dialog, all services that are not required to be running on the server should be stopped and disabled. This willprevent the service from automatically starting at system boot time. To stop and disable a service, do the following:1. Right-click the service and click Properties.2. Click Stop and set the Startup type to Disabled.©SAP AG 2009
  18. 18. Tuning Best Practices Guide 18Business Objects Financial Consolidation3. Click OK to return to the Services window.If a particular service has been installed as part of an application or Windows component and is not actually requiredon a given server, a better approach is to remove or uninstall this application or component altogether. This is typicallyperformed through the Add or Remove Programs applet in the Control Panel.Some services might not be required at system boot time but might be required to start by other applications orservices at a later time. Such services should be set to have a startup type of Manual. Unless a service is explicitly setto have a startup type of Disabled, it can start at any time and perhaps unnecessarily use system resources.Optimizing Network Card SettingsMany network interface cards in servers today have settings that can be configured through the Windows interface.Setting these optimally for your network environment and server configuration can significantly affect the performanceof network throughput. Of all the performance tuning features outlined in this chapter, it is the ones in this section thathave been noted to have the biggest improvement on system performance and throughput.To access this range of settings, follow these steps:1. Click Start → Settings → Network Connections.2. Click Properties.3. Right-click Local Area Connection (or the name of your network connection).4. Click Properties. Click Configure to access the configuration settings available for the network interface card.5. Click Configure.6. Click the Advanced tab.©SAP AG 2009
  19. 19. Tuning Best Practices Guide 19Business Objects Financial ConsolidationThe exact configuration settings available differ from one network interface card to another.The following settings are the ones that can have the most dramatic impact on performance:  Link Speed and Duplex Experience suggests that the best practice for setting the speed and duplex values for each network interface in the server is to configure them in one of two ways: – Set to auto-negotiation if, and only if, the switch port is also set to auto negotiation. The server and switch should then negotiate the fastest possible link speed and duplex settings. – Set to the same link speed and same duplex settings as those of the switch. These settings will, of course, normally yield the best performance if set to the highest settings that the switch will support.We do not recommend the use of auto-negotiation for the server network interface combined with manually setting theparameter on the network switch, or vice-versa. Using such a combination of settings at differing ends of the networkconnection to the server has often been found to cause poor performance and instability in many productionenvironments and should definitely be avoided. : You apply these settings for each physical network interface, including the individual cards within a set team ofinterfaces that are configured for aggregation, load balancing, or fault tolerance. With some teaming software, youmight need to apply these settings to the team also. Note also that some network interface cards are largely self-tuningand do not offer the option to configure parameters manually.To summarize, use either auto-negotiation at both interfaces or hard-code the settings at both interfaces, but not a mixof both of these.For more information, see the following Cisco Web site:http://www.cisco.com/warp/public/473/46.html#auto_neg_valid©SAP AG 2009
  20. 20. Tuning Best Practices Guide 20Business Objects Financial ConsolidationOther advanced settings are often available with network interface cards than just those described here. Thedocumentation for the network interface should be consulted to detail the meaning and impacts of changing eachsetting.The /3GB BOOT.INI parameter (32-bit x86)By default, the 32-bit (x86) editions of Windows can address a total of 4 GB of virtual address space. This is aconstraint of the 32-bit (x86) architecture. Normally, 2 GB of this is reserved for the operating system kernelrequirements (privileged-mode) and the other 2 GB is reserved for application (user-mode) requirements. Under normalcircumstances, this creates a 2 GB per-process address limitation.Windows provides a /3GB parameter to be added to the BOOT.INI file that reallocates 3 GB of memory to be availablefor user-mode applications and reduces the amount of memory for the system kernel to 1 GB.Given the radically increased memory capability of 64-bit (x64) operating systems, neither the /3GB switch nor the/PAE switch should be used on the 64-bit (x64) editions of the Windows Server 2003 operating system.To edit the BOOT.INI file to make this change, complete the following steps:1. Open the System Control Panel.2. Select the Advanced tab.3. Within the Startup and Recovery frame, click Settings.4. Click Edit. Notepad opens, and you can edit the current BOOT.INI file.5. Edit the current ARC path to include the /3GB switch.6. Restart the server for the change to take effect.When the /3GB is added to the BOOT.INI file, increase the parameter MaxServerVirtualMemory in the BFCAdministration Console Advanced Configuration to 2500©SAP AG 2009
  21. 21. Tuning Best Practices Guide 21Business Objects Financial ConsolidationFor more information, see:http://support.microsoft.com/kb/291988http://support.microsoft.com/kb/851372http://support.microsoft.com/kb/823440TCP TIME-WAIT DelayBy default, TCP will normally allocate a port with a value between 1024 and 5000 for a socket request for any availableshort-lived (ephemeral) user port. When communications over a given socket have been closed by TCP, it waits for agiven time before releasing it. This is known as the TIME-WAIT delay. The default setting for Windows Server 2003 istwo minutes, which is appropriate for most situations. However, some busy systems that perform many connections ina short time might exhaust all ports available, reducing throughput.Windows has two registry settings that can be used to control this time-wait delay:_ TCPTimedWaitDelay adjusts the amount of time that TCP waits before completely releasing a socket connection forre-use._ MaxUserPort sets the number of actual ports that are available for connections, by setting the highest port valueavailable for use by TCP.Reducing TCPTimedWaitDelay and increasing MaxUserPort can increase throughput for your system.Key: HKLMSYSTEMCurrentControlSet ServicesTcpipParametersValue: TCPTimedWaitDelayData type: REG_DWORDRange: 0x0 - 0x12C (0 - 300 seconds)Default: 0x78 (120 seconds)©SAP AG 2009
  22. 22. Tuning Best Practices Guide 22Business Objects Financial ConsolidationRecommendation: 0x1E (30 seconds)Value exists by default: No, needs to be added.Key: HKLMSYSTEMCurrentControlSetServicesTcpipParametersValue: MaxUserPortData type: REG_DWORDRange: 0x1388 - FFFE (5000 - 65534)Default: 0x1388 (5000)Recommendation: FFFEValue exists by default: No, needs to be added.For more information, see Microsoft Windows Server 2003 TCP/IP Implementation Details, which is available from:http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/networking/tcpip03.mspxUse NTFS on All VolumesWindows offers multiple file system types for formatting drives, including NTFS, FAT, and FAT32. NTFS should alwaysbe the file system of choice for servers.NTFS offers considerable performance benefits over the FAT and FAT32 file systems and should be used exclusivelyon Windows servers. In addition, NTFS offers many security, scalability, stability and recoverability benefits over FAT.Under previous versions of Windows, FAT and FAT32 were often implemented for smaller volumes (say <500 MB)because they were often faster in such situations. With disk storage relatively inexpensive today and operating systemsand applications pushing drive capacity to a maximum it is unlikely that such small volumes will be warranted.FAT32 scales better than FAT on larger volumes but is still not an appropriate file system for Windows servers.FAT and FAT32 have often been implemented in the past as they were seen as more easily recoverable andmanageable with native DOS tools in the event of a problem with a volume.Today, with the various NTFS recoverability tools available, both natively built into the operating system and as third-party utilities, there should no longer be a valid argument for not using NTFS for file systems.While it is an easy way to reduce space on volumes, NTFS file system compression is not appropriate for anapplication server. Implementing compression places an unnecessary overhead on the CPU for all disk operations andis best avoided. Think about options for adding additional disk, near-line storage, or archiving data before seriouslyconsidering file system compression.Monitor drive Space Utilization©SAP AG 2009
  23. 23. Tuning Best Practices Guide 23Business Objects Financial ConsolidationThe less data a disk has on it, the faster it will operate. This is because on a well defragmented drive, data is written asclose to the outer edge of the disk as possible, as this is where the disk spins the fastest and yields the bestperformance.Disk seek time is normally considerably longer than read or write activities. As noted above, data is initially written tothe outside edge of a disk. As demand for disk storage increases and free space reduces, data is written closer to thecenter of the disk. Disk seek time is increased in locating the data as the head moves away from the edge, and whenfound, it takes longer to read, hindering disk I/O performance.This means that monitoring disk space utilization is important not just for capacity reasons but for performance also. Itis not practical or realistic to have disks with excessive free space however.Use Disk Defragmentation Tools RegularlyOver time, files become fragmented in non-contiguous clusters across disks, and system performance suffers as thedisk head jumps between tracks to seek and re-assemble them when they are required.Disk defragmentation tools work to ensure all file fragments on a system are brought into contiguous areas on the disk,improving disk I/O performance. Regularly running a disk defragmentation tool on a server is a relatively easy way toyield impressive system performance improvements.Most defragmentation tools work the fastest and achieve the best results when they have plenty of free disk space towork with. This provides another good reason to monitor and manage disk space usage on production servers.In addition, try to run defragmentation tools when the server is least busy and if possible, during scheduled systemdowntime. Defragmentation of the maximum number of files and directories will be achieved if carried out whileapplications and users that typically keep files open are not accessing the server.Windows Server 2003 includes a basic disk defragmentation tool. While offer good defragmentation features, it offerslittle in the way of automated running - each defragmentation process must be initiated manually or through externalscripts or scheduling tools.A number of high-quality, third-party disk defragmentation tools exist for the Windows operating system, includingtailorable scheduling, reporting, and central management functionality. The cost and performance benefit of using suchtools is normally quickly realized when compared to the ongoing operational costs and degraded performance ofdefragmenting disks manually, or not at all. As a rule of thumb, work towards a goal of keeping disk free space between 20% and 25% of total disk space.©SAP AG 2009
  24. 24. Tuning Best Practices Guide 24Business Objects Financial Consolidation We recommend you defragment your drives weekly if possible.Log off the Server ConsoleA simple but important step in maximizing your server‘s performance is to keep local users logged off the console. Alocally logged-on user unnecessarily consumes system resources, potentially impacting the performance ofapplications and services running on the system.Remove CPU-intensive Screen SaversA server is not the place to run fancy 3D or OpenGL screen savers. Such screen-savers are known to be CPU-intensive and use important system resources when they are running. It is best to avoid installing these altogether asan option at server-build time, or to remove them if they have been installed. The basic ―Windows Server 2003‖ orblank screen savers are the best choice.Monitor System Performance AppropriatelyRunning the Windows System (Performance) Monitor directly on the server console of a server you are monitoring willimpact the performance of the server and will potentially distort the results you are examining.Wherever possible, use System Monitor from a remote system to avoid placing this extra load on the server itself.Similarly, you should not use remote control software of the server console for performance monitoring nor should youuse a remote client session using thin-client sessions such as Terminal Services or Citrix to carry out the task. Notehowever that monitoring a system remotely will affect the network and network interface counters which might impactyour measurements.Bear in mind that the more counters monitored, the more overhead is required. Do not monitor unnecessary counters.This tact should be taken regardless of whether carrying out ―live‖ charted monitoring of a system or logging systemperformance over longer periods. In the same way, do not publish System Monitor as a Citrix application. Along thesame lines, reduce the monitoring interval to the minimum necessary to obtain the information you are looking togather. When logging over an extended period, collecting data every minute instead of the system default of everysecond might still provide acceptable levels of information. Monitoring more frequently will generate additional systemoverhead and create significantly larger log files than might be required.BFC tracingIt is possible to enable an SAP BusinessObjects Financial Consolidation technical log to trace SAP BusinessObjectsFinancial Consolidation events occurring on the Application Server. This is the only tool giving an accurate technical©SAP AG 2009
  25. 25. Tuning Best Practices Guide 25Business Objects Financial Consolidationinfo for the SAP BusinessObjects Financial Consolidation application. The settings are described in an XML file andreflect the event type, the contents log.The XML files log definition is named CtServerLogConfig.xml. If you want to dedicate an XML log for a named datasource, add the data source name as a prefix of the xml file. For example, you can create a P38CtServerLogConfig.xml which will log only technical information for CtServerprocess linked to P38 data source.The XML log definition file is read only when the CtServer process is started. So any modification to an XML file will beeffective only after the next CtServer.exe instance run.The XML log file allows the definition of:  The level of information to collect  The type of information to collect  The output recording mediaThe XML file is defined by a series of combined tags:One or more <logger> which allows you to configure the type of information you want to record. One or more<appender>, which allows you to configure the output media recording. Each type of appender can be configured inorder to format the output format (the <layout> tag)©SAP AG 2009
  26. 26. Tuning Best Practices Guide 26Business Objects Financial ConsolidationOnce your logger and appender are correctly configured you may link any logger to any appender.So for example, you can set up a logger which will filter any database error message and redirect them to a dedicatedappender (a file for example).There are 4 types of information level:  Info: Will log information about the processing being run.  Warning: Will log warning messages concerning unexpected errors but that do not compromise the integrity of the data  Error: Will log only error messages concerning unexpected errors. This errors allow the application to continue to run, but they can nevertheless compromise the integrity of the data  Debug: Will log everythingDebug level is not recommended as it will generate a high amount of information that may impact overall performance.Debug level may be requested by Business Objects support for troubleshooting investigation only.Costly queries appear in the generated log files if the response time from the database is more that 15 s.03-26-09 14:44:19 [2272] WARN system.database.command.dml - [Request 4104] - Costly query execution - SELECT a1.header_dim_values,a1.locking_mode, a1.locking_date, a1.session_certificate, a2.user_id FROM ct_md_lock a1 LEFT OUTER JOIN ct_active_session a2 ON(a1.session_certificate = a2.session_certificate) WHERE ((a1.datasource_id = -524279) AND ((a1.header_dim_values LIKE ?) ORa1.header_dim_values IN (?, 00000001))) - 0 row(s) affected - duration 1881.81 sIt is possible to generate all the queries run by ctserver.exe with the logger system.database.command set to debug. <logger name="system.database.command"> <level value ="debug" /> <appender-ref ref="myfile" /> </logger> We recommend verifying the presence of costly queries in technical logs. If the ctserver.exe keeps waiting aresponse of the database server, at some point it will freeze. If the server cannot update his certificate it will stop:03-03-09 02:08:44 [5660] WARN system.database.command.dml - [Request 42148] - Costly query execution - UPDATE ct_mutex SET ct_lock = ?WHERE ct_name = ? - 1 row(s) affected - duration 209.046 s03-03-09 02:08:44 [4384] WARN system.database.command.dml - [Request 42161] - Costly query execution - DELETE FROM ct_active_sessionWHERE (ct_active_session.session_certificate = ?) - 1 row(s) affected - duration 86.766 s03-03-09 02:09:14 [5660] ERROR application.controller - Server lease with certificate [{626D6E89-CEEA-448E-91E4-9FC18BDE80C1}] and leasetime [125000] renew failed03-03-09 02:09:14 [5660] FATAL application - Application is stopping because server lease expiration date update failedOptimizing BFC TransferIn an SAP BusinessObjects Financial Consolidation architecture where there are local data entry sites and stepconsolidation sites, you can exchange information by sending and receiving files.©SAP AG 2009
  27. 27. Tuning Best Practices Guide 27Business Objects Financial ConsolidationThese files can be sent manually (via CDs or disk) or automatically. Files can be sent automatically via mail systemsthat support the MAPI or SMTP/POP3 protocols.The number of tasks that can be run simultaneously on a given server can be specified in the Administration console (4by default). The setting you enter is applied to all the servers. To find out more, see the Installation and AdministrationGuide.These requests are then: • processed directly by the processing units as soon as one is freed up • sent to the queue until a processing unit is freed up It is recommended to regularly purge the task view in the BFC application. The greater the number of tasks is, thelonger it will take to access the tasks view.When you delete a ―receive task‖ by the BFC application the corresponding .tmp file is also deleted. If the directoriesIncoming and Outbound are manually cleaned it is recommended to stop the application server before.When receiving some important objects (like dimension builder elements, category scenario...) there are locks ontables in the database, and this is slowing the platform. These locks are necessary to ensure the data integrity.We recommend that you receive these objects when no user is connected to the application (data source started inexclusive mode), or during dedicated hours.Web ServerTo access SAP BusinessObjects Financial Consolidation via the web, you must add a HTTP server to the architecture.While the application server can manage requests from web clients, it cannot manage the flow of data in HTTP format.The HTTP server is independent from SAP BusinessObjects Financial Consolidation; it relies on Microsoft IIStechnology. HTTP server is linked to the SAP BusinessObjects Financial Consolidation application server via the webconnector, an ASP.NET application. The system setup automatically installs the .NET framework. The web connectormonitors user sessions and converts HTTP requests to DCOM remote procedure calls for the application server. Theweb connector also formats the HTML pages received by the application server before sending them to the clients.SAP BusinessObjects Financial Consolidation uses the SSL and VPN security protocols to encrypt the data. The clientcomputer stores a cookie, consisting of only a number in order to identify SAP BusinessObjects Financial Consolidationsessions. We recommend that you use a local network of 100 Mbps to communicate between the SAP BusinessObjectsFinancial Consolidation web server and the SAP BusinessObjects Financial Consolidation application server.IIS 6.0 is not installed on Windows Server 2003 by default. When you first install IIS 6.0, it is locked down — whichmeans that only request handling for static Web pages is enabled, and only the World Wide Web Publishing Service©SAP AG 2009
  28. 28. Tuning Best Practices Guide 28Business Objects Financial Consolidation(WWW service) is installed. None of the features that sit on top of IIS are turned on, including ASP, ASP.NET, CGIscripting, FrontPage® 2002 Server Extensions from Microsoft, and WebDAV publishing. If you do not enable thesefeatures, IIS returns a 404 error. You can enable these features through the Web Services Extensions node in IISManager. ®Microsoft ASP.NET is a unified Web development platform that provides the services necessary for developers tobuild enterprise-class Web applications. While ASP.NET is largely syntax compatible with ASP, it also provides a newprogramming model and infrastructure for more secure, scalable, and stable applications. ASP.NET is part of Microsoft.NET Framework, a computing environment that simplifies application development in the highly distributedenvironment of the Internet..NET Framework includes the common language runtime, which provides core services such as memory management,thread management, code security, and the .NET Framework class library, a comprehensive and object-orientedcollection of types that developers can use to create applications.The .NET Framework configuration is maintained in Machine.config file (located in the%SystemRoot%Microsoft.NETFramework%VersionNumber%CONFIG folder). Settings in this file affect all of the.NET applications on the server.IIS installationTo install IIS, add components, or remove components using Control Panel 1. From the Start menu, click Control Panel. 2. Double-click Add or Remove Programs. 3. Click Add/Remove Windows Components. 4. In the Components list box, click Application Server. 5. Click Details. 6. Click Internet Information Services Manager. Click Details to view the list of IIS optional components. For a detailed description of IIS optional components, see "Optional 7. Components" in this topic. 8. Select all optional components you wish to install (IIS, COM+, ASP.NET, Application Server Console)..When you install IIS 6.0 on a computer that does not contain an earlier version of IIS, IIS 6.0 automatically installs thefollowing two services:  The WWW service, which hosts Internet and intranet content  The IIS Admin service, which manages the IIS metabaseThe table below lists the IIS services and their service hosts.Table 2.2 Basic Services Provided by IIS 6.0Service Name Description Service Short Name Core Component HostWorld Wide Web Publishing Service (WWW service) Delivers Web publishing services. W3SVC Iisw3adm.dll Svchost.exeIIS Admin Service Manages the metabase. IISADMIN Iisadmin.dll Inetinfo.exe©SAP AG 2009
  29. 29. Tuning Best Practices Guide 29Business Objects Financial ConsolidationWorld Wide Web Publishing ServiceThe World Wide Web Publishing Service (WWW service) provides Web publishing for IIS, connecting client HTTPrequests to Web sites running on an IIS-based Web server.The WWW service manages and configures the IIS core components that process HTTP requests. These corecomponents include the HTTP protocol stack (HTTP.sys) and the worker processes.The WWW service includes these subcomponents: Active Server Pages (ASP), Internet Data Connector, RemoteAdministration (HTML), Remote Desktop Web Connection, server-side includes (SSI), Web Distributed Authoring andVersioning (WebDAV) publishing, and ASP.NET.IIS Admin ServiceIIS Admin service is a Windows Server 2003 service that manages the IIS metabase. The metabase stores IISconfiguration data in a plaintext XML file, which you can read and edit using common text editors. IIS Admin servicemakes metabase data available to other applications, including the core components of IIS, applications built on IIS,and applications that are independent of IIS, such as management or monitoring tools.IIS 6.0 Core Components (IIS 6.0)IIS 6.0 contains several core components that perform important functions in the new IIS architecture:  HTTP Protocol Stack (HTTP.sys). When IIS 6.0 runs in worker process isolation mode, HTTP.sys listens for requests and queues those requests in the appropriate queue. Each request queue corresponds to one application pool. An application pool corresponds to one request queue within HTTP.sys and one or more worker processes.  Worker processes. A worker process is user-mode code whose role is to process requests, such as processing requests to return a static page, invoking an ISAPI extension or filter, or running a Common Gateway Interface (CGI) handler. In both application isolation modes, the worker process is controlled by the WWW service. However, in worker process isolation mode, a worker process runs as an executable file named W3wp.exe, and in IIS 5.0 isolation mode, a worker process is hosted by Inetinfo.exe. Worker processes use HTTP.sys to receive requests and to send responses by using HTTP. Worker processes also run application code, such as ASP.NET applications and XML Web services.  WWW Service Administration and Monitoring. It is responsible for two roles in IIS: HTTP administration and worker process management. This service reads metabase information and initializes the HTTP.sys namespace routing table with one entry for each application. HTTP.sys then uses the routing table data to determine which application pool responds to requests from what parts of the namespace. When HTTP.sys receives a request, it signals the WWW service to start a worker process for the application pool. When you add or delete an application pool, the WWW service processes the configuration changes, which includes adding or deleting the application pool queue from HTTP.sys. The WWW service also listens for and processes©SAP AG 2009
  30. 30. Tuning Best Practices Guide 30Business Objects Financial Consolidation configuration changes that occur as a result of application pool recycling. The WWW service is responsible for managing the worker processes, which includes starting the worker processes and maintaining information about the running worker processes. This service also determines when to start a worker process, when to recycle a worker process, and when to restart a worker process if it becomes blocked and is unable to process any more requests.  Inetinfo.exe. When IIS 6.0 runs in worker process isolation mode, Inetinfo.exe is a user-mode component that hosts the IIS metabase and that also hosts the non-Web services of IIS 6.0, including the FTP service, the SMTP service, and the NNTP service. Inetinfo.exe depends on IIS Admin service to host the metabase. When IIS 6.0 runs in IIS 5.0 isolation mode, Inetinfo.exe functions much as it did in IIS 5.0. In IIS 5.0 isolation mode, however, Inetinfo.exe hosts the worker process, which runs ISAPI filters, Low-isolation ISAPI extensions, and other Web applications.  IIS Metabase. The IIS metabase is a plaintext, XML data store that contains most IIS configuration information. Although most of the IIS configuration settings are stored in the IIS metabase, a few settings are maintained in the Windows registry. The metabase consists of the following elements: o The MetaBase.xml file stores IIS configuration information that is specific to an installation of IIS, MBSchema.xml file which contains the metabase schema. o The MBSchema.xml file is a master configuration file that defines default attributes for all metabase properties and enforces rules for constructing and placing metabase entries within the metabase. o In-memory metabase. The in-memory metabase contains the most current metabase and metabase schema configuration. The in-memory metabase accepts changes to the metabase configuration and schema, storing them in RAM, and periodically writing changes to the on-disk metabase and metabase schema files. When IIS starts, the MetaBase.xml and MBSchema.xml files are read by the IIS storage layer and copied to the in-memory metabase. While IIS is running, any changes that you make to the in-memory metabase are periodically written to disk. IIS also saves the in-memory metabase to disk when you stop IIS. The IIS Admin service makes the metabase available (by means of the Admin Base Object) to other applications, including the core components of IIS, applications built on IIS, and applications that are independent of IIS, such as management or monitoring tools.IIS 6.0 runs a server in one of two distinct request processing models, called application isolation modes. In eachisolation mode, IIS functions differently, although both application isolation modes rely on HTTP.sys as the HTTPlistener.Worker Process Isolation ModeWorker process isolation mode takes advantage of the redesigned architecture for IIS 6.0. In this application isolationmode, you can group Web applications into application pools, through which you can apply specific configurationsettings to groups of applications and to the worker processes servicing those applications. Any Web directory or virtualdirectory can be assigned to an application pool.©SAP AG 2009
  31. 31. Tuning Best Practices Guide 31Business Objects Financial ConsolidationBy creating new application pools and assigning Websites and applications to them, you can make your server moreefficient and reliable, and your other applications always available, even when the applications in the new applicationpool terminate. We recommend you configure one application pool for each BusinessObjects Financial Consolidation applicationthat you want to deploy.IIS 5.0 Isolation ModeIIS 5.0 isolation mode is provided for applications that depend upon specific features and behaviors of IIS 5.0. It is notrecommended to use this isolation mode for BFC application.After you have your site and application up and running the way you want, you can save all or part of the configurationsfor a backup copy, or for import and export to other sites or computers.IIS automatically makes a backup copy of the metabase (a repository for most Internet Information Services (IIS)configuration values is a plaintext XML file that can be edited manually or programmatically and is also extensible in ahighly efficient manner) configuration and schema files each time the metabase changes. Administrators can alsocreate backup files on demand, or create backup copies of individual site or application configurations and then exportand import them to and from other sites or computers.Backup files contain only configuration data; they do not include your contents (.asp files, .htm files, .dll files, and soon).To save a metabase configuration 1. In IIS Manager, right-click the local computer, point to All Tasks, and then choose Backup/Restore Configuration. 2. Choose Create Backup. 3. In the Configuration backup name box, type a name for the backup file. 4. To restore your backup files to a different computer, provide a password that will be used as the encryption key by doing the following: Select the Encrypt backup using password check box, type a "strong password" in the Password box, and then type the same password in the Confirm password box. 5. Choose OK, and then choose Close.To restore a metabase configuration 1. In IIS Manager, right-click the local computer, point to All Tasks, and then choose Backup/Restore Configuration. 2. From the Backups list box, choose a previous backup version, and choose Restore. 3. When a confirmation message appears, choose Yes. 4. Choose OK, and then choose Close.To save a site or application configuration 1. In IIS Manager, right-click the site or application you want to back up, point to All Tasks, and choose Save Configuration to a File.©SAP AG 2009
  32. 32. Tuning Best Practices Guide 32Business Objects Financial Consolidation 2. In the File name box, type a file name. 3. In the Path box, type or browse to the location where you want to save the file. 4. Choose OK.Improving ASP.NET PerformanceConsider the following settings in the Machine.config file:Set maxIoThreads (this setting controls the maximum number of I/O threads in the .NET thread pool) andmaxWorkerThreads (this setting controls the maximum number of worker threads in the thread pool) to 100.If you move your application to a new computer, ensure that you recalculate and reconfigure the settings based on thenumber of CPUs in the new computer.Improving Web Services PerformanceTo perform large data transfers, start by checking that the maxRequestLength parameter in the <httpRuntime> elementof machine.config file is large enough. This parameter limits the maximum SOAP message size for a Web service.Next, check your timeout settings. Set an appropriate timeout on the Web service proxy, and make sure that yourASP.NET timeout is larger than your Web service timeout.We recommend the following values: 3600 for the timeout parameter and 16384 for the maxRequestLenght parameter.Monitoring ToolsMonitoring the servers consists of the following tasks:  Verify that the processes InetInfo.exe and w3wp.exe are up and running.  Monitor CPU (processor Time, Processor Queue Length) and memory utilization (Available Mbytes, Pages/sec) and IIS counters If the value of % Processor Time is high, then queuing occurs, and in most scenarios the value of System Processor Queue Length is high. The next step is to identify which process is consuming processor time. A low value of Available MBytes indicates that your system is low on physical memory, caused either by system memory limitations or the application that is not releasing memory.  Configure log monitoring (see administration guide).When you install IIS 6.0, all of the IIS performance counters, with the exception of the SNMP counters, appear inSystem Monitor and in Performance Logs and Alerts.The Web Service counters help you determine how well the World Wide Web Publishing Service (WWW service)processes requests. The WWW service is a user-mode service. These counters also reflect the processing that occursin the kernel-mode driver, HTTP.sys.©SAP AG 2009
  33. 33. Tuning Best Practices Guide 33Business Objects Financial ConsolidationConfigure these counters to monitor performance for individual Websites, or for all sites on a server (by using the_Total instance). Note that some counters that were included with IIS 5.x are now obsolete and, therefore, return a zerovalue.The table below describes the counters for the Web Service performance object.Bytes (Sent, Received, and Transferred) CountersCounter DescriptionTotal Bytes Sent The number of data bytes that have been sent by the WWW service since the service started. This counter is new in IIS 6.0.Bytes Sent/sec The rate, in seconds, at which data bytes have been sent by the WWW service.Total Bytes Received The total bytes of data that have been received by the WWW service since the service started. This counter is new in IIS 6.0.Bytes Received/sec The rate, in seconds, at which data bytes have been received by the WWW service.Total Bytes The total number of bytes of data that have been sent and received by the WWW service since the service started. ThisTransferred counter is new in IIS 6.0.Bytes Total/sec The sum of Bytes Sent/sec and Bytes Received/sec.Connections and Attempts CountersCounter DescriptionCurrent Connections The number of active connections to the WWW service.Maximum The maximum number of simultaneous connections made to the WWW service since the service started.ConnectionsTotal Connection The number of connections to the WWW service that have been attempted since the service started.AttemptsConnection The rate, in seconds, at which connections to the WWW service have been attempted since the service started.Attempts/secTotal Logon Attempts The number of attempts to log on to the WWW service that have occurred since the service started.Logon Attempts/sec The rate, in seconds, at which attempts to log on to the WWW service have occurred.Table Requests CountersCounter DescriptionTotal Options The number of HTTP requests that have used the OPTIONS method since the WWW service started.RequestsOptions Requests/sec The rate, in seconds, at which HTTP requests that use the OPTIONS method have been made.Total Get Requests The number of HTTP requests that have used the GET method since the WWW service started.Get Requests/sec The rate, in seconds, at which HTTP requests that use the GET method have been made to the WWW service.Total Post Requests The number of HTTP requests that have used the POST method since the WWW service started.Post Requests/sec The rate, in seconds, at which requests that use the POST method have been made to the WWW service.Total Head Requests The number of HTTP requests that have used the HEAD method since the WWW service started.Head Requests/sec The rate, in seconds, at which HTTP requests that use the HEAD method have been made to the WWW service.Total Put Requests The number of HTTP requests that have used the PUT method since the WWW service started.Put Requests/sec The rate, in seconds, at which HTTP requests that use the PUT method have been made to the WWW service.Total Delete The number of HTTP requests that have used the DELETE method since the WWW service started.©SAP AG 2009
  34. 34. Tuning Best Practices Guide 34Business Objects Financial ConsolidationBytes (Sent, Received, and Transferred) CountersCounter DescriptionRequestsDelete Requests/sec The rate, in seconds, at which HTTP requests that use the DELETE method have been made to the WWW service.Total Trace Requests The number of HTTP requests that have used the TRACE method since the WWW service started.Trace Requests/sec The rate, in seconds, at which HTTP requests that use the TRACE method have been made to the WWW service.Total Move Requests The number of HTTP requests that have used the MOVE method since the WWW service started.Move Requests/sec The rate, in seconds, at which HTTP requests that use the MOVE method have been made to the WWW service.Total Copy Requests The number of HTTP requests that have used the COPY method since the WWW service started.Copy Requests/sec The rate, in seconds, at which HTTP requests that use the COPY method have been made to the WWW service.Total Search The number of HTTP requests that have used the SEARCH method since the WWW service started.RequestsSearch Requests/sec The rate, in seconds, at which HTTP requests that use the SEARCH method have been made to the WWW service.Total Lock Requests The number of HTTP requests that have used the LOCK method since the WWW service started.Lock Requests/sec The rate, in seconds, at which HTTP requests that use the LOCK method have been made to the WWW service.Total Unlock The number of HTTP requests that have used the UNLOCK method since the WWW service started.RequestsUnlock Requests/sec The rate, in seconds, at which HTTP requests that use the UNLOCK method have been made to the WWW service.Total Method The number of HTTP requests that have been made since the WWW service started.RequestsTotal Method The rate, in seconds, at which all HTTP requests have been received.Requests/secTable Errors (Not Found and Locked) CountersCounter DescriptionTotal Not Found The number of requests that have been made since the service started that were not satisfied by the server because theErrors requested document was not found. Usually reported as HTTP error 404.Not Found Errors/sec The rate, in seconds, at which requests were not satisfied by the server because the requested document was not found.Total Locked Errors The number of requests that have been made since the service started that could not be satisfied by the server because the requested document was locked. Usually reported as HTTP error 423.Locked Errors/sec The rate, in seconds, at which requests were not satisfied because the requested document was locked.ASP.NET supports the following ASP.NET system performance counters, which aggregate information for all ASP.NETapplications on a Web server computer, or, alternatively, apply generally to a system of ASP.NET servers running thesame applications.Use the ASP.NET counters in the following table to monitor ASP.NET system performance.Table Application Restarts and Applications Running CountersCounter DescriptionApplication Restarts The number of times that an application has been restarted since the Web service started. Application restarts are©SAP AG 2009
  35. 35. Tuning Best Practices Guide 35Business Objects Financial ConsolidationTable Application Restarts and Applications Running CountersCounter Description incremented with each Application_OnEnd event. An application restart can occur because changes were made to the Web.config file or to assemblies stored in the applications Bin directory, or because too many changes occurred in Web Forms pages. Sudden increases in this counter can mean that your Web application is shutting down. If an unexpected increase occurs, be sure to investigate it promptly. This value resets every time IIS is restarted.Applications Running The number of applications that are running on the server computer.Table Requests CountersCounter DescriptionRequests The number of requests that were disconnected because a communication failure occurred.DisconnectedRequests Queued The number of requests in the queue waiting to be serviced. If this number increases as the number of client requests increases, the Web server has reached the limit of concurrent requests that it can process. The default maximum for this counter is 5,000 requests. You can change this setting in the computers Machine.config file.Requests Rejected The total number of requests that were not executed because insufficient server resources existed to process them. This counter represents the number of requests that return a 503 HTTP status code, which indicates that the server is too busy.Request Wait Time The number of milliseconds that the most recent request waited in the queue for processing.Table State Server Sessions CountersCounter DescriptionState Server The number of user sessions that were explicitly abandoned. These are sessions that have been ended by specific userSessions Abandoned actions, such as closing the browser or navigating to another site.State Server The number of active user sessions.Sessions ActiveState Server The number of user sessions that are now inactive. In this case, the user is inactive, not the server.Sessions Timed OutState Server The number of sessions created during the lifetime of the process. This counter represents the cumulative value of StateSessions Total Server Sessions Active, State Server Sessions Abandoned, and State Server Sessions Timed Out counters.Table Worker Process CountersCounter DescriptionWorker Process The number of times that a worker process restarted on the server computer. A worker process can be restarted if it failsRestarts unexpectedly or when it is intentionally recycled. If worker process restarts increase unexpectedly, investigate immediately.Worker Processes The number of worker processes that are running on the server computer.RunningTable Anonymous Requests CountersCounter DescriptionAnonymous Requests The number of requests that use anonymous authentication.Anonymous The average number of requests that have been made per second that use anonymous authentication.Requests/secTable Cache Total CountersCounter DescriptionCache Total Entries The total number of entries in the cache. This counter includes both internal use of the cache by the ASP.NET framework and external use of the cache through exposed APIs.Cache Total Hits The total number of responses served from the cache. This counter includes both internal use of the cache by the ASP.NET framework and external use of the cache through exposed APIs.©SAP AG 2009
  36. 36. Tuning Best Practices Guide 36Business Objects Financial ConsolidationTable Application Restarts and Applications Running CountersCounter DescriptionCache Total Misses The number of failed cache requests. This counter includes both internal use of the cache by ASP.NET and external use of the cache through exposed APIs.Cache Total Hit Ratio The ratio of cache hits to cache misses. This counter includes both internal use of the cache by ASP.NET and external use of the cache through exposed APIs.Cache Total Turnover The number of additions to and removals from the cache per second. Use this counter to help determine how efficiently theRate cache is being used. If the turnover rate is high, the cache is not being used efficiently.Table Errors CountersCounter DescriptionErrors During The number of errors that occurred during parsing. Excludes compilation and run-time errors.PreprocessingErrors During The number of errors that occurred during dynamic compilation. Excludes parser and run-time errors.CompilationErrors During The total number of errors that occurred during the execution of an HTTP request. Excludes parser and compilation errors.ExecutionErrors Unhandled The total number of unhandled errors that occurred during the execution of HTTP requests.During Execution An unhandled error is any uncaught run-time exception that escapes user code on the page and enters the ASP.NET internal error-handling logic. Exceptions occur in the following circumstances: • When custom errors are enabled, an error page is defined, or both. • When the Page_Error event is defined in user code and either the error is cleared (by using the HttpServerUtility.ClearError method) or a redirect is performed.Errors Unhandled The number of unhandled exceptions that occurred per second during the execution of HTTP requests.During Execution/secErrors Total The total number of errors that occurred during the execution of HTTP requests. Includes parser, compilation, or run-time errors. This counter represents the sum of the Errors During Compilation, Errors During Preprocessing, and Errors During Execution counters. A well-functioning Web server should not generate errors.Errors Total/sec The average number of errors that occurred per second during the execution of HTTP requests. Includes any parser, compilation, or run-time errors.Table Request Bytes CountersCounter DescriptionRequest Bytes In The total size, in bytes, of all requests.TotalRequest Bytes Out The total size, in bytes, of responses sent to a client. This does not include standard HTTP response headers.TotalTable Requests CountersCounter DescriptionRequests Executing The number of requests that are currently executing.Requests Failed The total number of failed requests. All status codes greater than or equal to 400 increment this counter. Note: Requests that cause a 401 status code increment this counter and the Requests Not Authorized counter. Requests that cause a 404 or 414 status code increment this counter and the Requests Not Found counter. Requests that cause a 500 status code increment this counter and the Requests Timed Out counter.Requests In The number of requests in the application request queue.©SAP AG 2009
  37. 37. Tuning Best Practices Guide 37Business Objects Financial ConsolidationTable Application Restarts and Applications Running CountersCounter DescriptionApplication QueueRequests Not Found The number of requests that failed because resources were not found (status code 404, 414).Requests Not The number of requests that failed because of lack of authorization (status code 401).AuthorizedRequests Succeeded The number of requests that executed successfully (status code 200).Requests Timed Out The number of requests that timed out (status code 500).Requests Total The total number of requests that have been made since the service started.Requests/sec The average number of requests that have been executed per second. This counter represents the current throughput of the application.Table Sessions CountersCounter DescriptionSessions Active The number of sessions that are active.Sessions Abandoned The number of sessions that have been explicitly abandoned.Sessions Timed Out The number of sessions that timed out.Sessions Total The total number of sessions.Table Transactions CountersCounter DescriptionTransactions Aborted The number of transactions that were aborted.Transactions The number of transactions that were committed. This counter increments after page execution if the transaction does notCommitted abort.Transactions Pending The number of transactions that are in progress.Transactions Total The total number of transactions that have occurred since the service was started.Transactions/sec The average number of transactions that were started per second.Table Miscellaneous Counters for ASP.NET ApplicationsCounter DescriptionCompilations Total The total number of times that the Web server process dynamically compiled requests for files with .aspx, .asmx, .ascx, or .ashx extensions (or a code-behind source file). Note: This number initially climbs to a peak value as requests are made to all parts of an application. After compilation occurs, however, the resulting binary compilation is saved on disk, where it is reused until its source file changes. This means that, even when a process restarts, the counter can remain at zero (be inactive) until the application is modified or redeployed.Debugging Requests The number of requests that occurred while debugging was enabled.Pipeline Instance The number of active request pipeline instances for the specified ASP.NET application. Because only one execution threadCount can run within a pipeline instance, this number represents the maximum number of concurrent requests that are being processed for a specific application. In most circumstances, it is better for this number be low when the server is busy, because this means that the CPU is well used.For troubleshooting, you can consult the following information:  Windows events log©SAP AG 2009

×