There are basically three parts. First, you enable Siebel ARM so that data is collected. Then, you run a utility to format the data so that you can read it and possibly perform some preliminary analysis. Finally, you analyze the data. This is the second point release of the utility (Siebel 7.5 was the first release). As such, the formatting and analyzing are manual steps. In the future, there should be improvements in the way the data is displayed to assist with analysis. However, even in its current form, this utility is very valuable since it makes information available that was previously not accessible. Explain: ARM API 2.0 support does not mean “compliance” (more on this later). Performance Tuning Guide Reference
Emphasize that sarmanalyzer output is not an end-all solution. Further analysis (manual or automated) is anticipated. Explain the types of sarmanalyzer output and how each can be used to monitor and/or diagnose performance issues by process (area), sessions and requests, or raw call graph (XML or CSV) data. Aggregation and user session trace analyses provide analytic (statistical summary) results by Siebel components and user sessions and requests, respectively. They are typically useful as first-line approaches for high-level, summary analysis. They are easy to perform and thus well suited for monitoring and high-level reporting against a baseline. Raw call graph data (XML or CSV) does not provide analytic results. Instead, it provides all Siebel ARM output. Files are larger, and overheads higher. Therefore, they are not well suited for in-production system monitoring, but are very useful for deep-dive diagnostic analysis and troubleshooting.
Explain the various arguments and types of data produced by sarmanalyzer. The –f and –o options indicate the input Siebel ARM log files and XML output file. sarmanalyzer arguments are different for Siebel 7.5.3 and Siebel 7.7. Also, in Siebel 7.7, sarmanalyzer automatically concatenates multiple input files during aggregation analysis, and automatically identifies and combines corresponding Siebel ARM log files from the Siebel Server and Web server during user session trace analysis. See Performance Tuning Guide (Version 7.5.3) for details. Siebel 7.5.3 Versus Siebel 7.7
Define and describe the various terms, concepts, relationships, and sections of raw CSV data including: SarmID, RootID, ParentSarmID, ThreadID, IsRoot, area and subarea descriptors and other fields not shown (including AppString). Data contained within this tag represents an instance of a Siebel ARM node, which is an instrumented area of the Siebel ARM architecture. Each Siebel ARM node can have zero to many nodes as its descendants. For our purposes, you can think of “SARM record” and “SARM node” as being synonymous. SARM Node (or Record) Flag that specifies whether this is a root Siebel ARM node. A node is the root when SarmID = RootID. IsRoot The parent SarmNode from which the request traveled. ParentSarmID The SarmID of the root Siebel ARM node. RootID A unique number representing the Siebel ARM node SarmID
Siebel ARM parameters are set using Siebel Server parameters and environment variables. In Siebel 7.7, you no longer need to restart the Siebel Server for the parameter changes to take effect. Siebel 7.5.3 Versus Siebel 7.7
Explain the various parameter (their settings, impact and when to use them) for configuring Siebel ARM. SARMLevel and SARMPeriod are new for Siebel 7.7 and, respectively, allow an administrator to set the level-of-detail reported and period of time between buffer writes (Siebel Server only). Siebel 7.5.3 Versus Siebel 7.7
There are eight rows in this table. You will note that all records share a common root (Application Server area with response time of 32440 and SarmID 13722). As you drill down the call graph by traversing parent-to-child SARM nodes, durations gradually decrease with each next step. If you were to traverse the records in reverse order (bottom-up) you would notice that the times accumulate (or roll up) as you go. For example, the Workflow area with SarmID of 13871 has a duration of 30037, which is part of the 32440 seen for the Application Server. Because of the nature of the Siebel ARM data hierarchy, not all of the rows that add up to the total of 32440 are show in this table. These detailed records will be exposed later in this analysis.
At some point, when diagnosing user session trace analysis, you are likely to need more data or additional tools.
What is Siebel SARM <ul><li>A Standards Based tool for capturing and analyzing (or preparing for analysis) performance information from the Siebel Server and SWSE </li></ul><ul><ul><li>Includes a tool to compile and convert data for analysis and study in other tools, and a CSV converter for basic analysis </li></ul></ul><ul><li>Is compatible with any ARM Analysis Tool </li></ul><ul><li>Gathers information at different points in the Siebel Server, Siebel Web Server Extension, Siebel Server Components like the Object Manager etc </li></ul><ul><ul><li>Generates SARM files in the LOG directory of the Server and the SWSE </li></ul></ul>
Siebel ARM Analyzer <ul><li>Is a tool to parse SARM files and produce output files that other applications can read </li></ul><ul><li>Siebel ARM analyzer can output data in the following formats: </li></ul><ul><ul><li>Aggregation (area or subarea) analysis (Filtered by Area or Sub Area) </li></ul></ul><ul><ul><li>User session trace analysis (filtered by User) </li></ul></ul><ul><ul><li>XML or Comma Separated Value (CSV) data with all data </li></ul></ul>
Getting Some Output <ul><li>Sarmanalyzer produces different output according to the following switches </li></ul><ul><li>-o output.csv </li></ul><ul><li>-d CSV </li></ul><ul><li>f input.sarm </li></ul>-o output_file.xml -u user name -i .sarm file directory -s start time -e end time -o output_file.xml -a AREA or DETAIL -f input_file1.sarm,input_file2.sarm…
Raw CSV Data <ul><li>Contains a single record for each information point in the Siebel application </li></ul><ul><li>Contains all the Siebel ARM data written to file </li></ul><ul><li>Good for problem diagnosis </li></ul>
Setting It Up <ul><li>BEFORE YOU BEGIN </li></ul><ul><li>If Siebel ARM parameters are not visible, make sure Hidden parameters are displayed </li></ul><ul><li>ON THE SERVER </li></ul><ul><ul><li>Set SARMGranularityLevel parameter to 1 or 2 to enable </li></ul></ul><ul><ul><li>Enables SARM at the enterprise </li></ul></ul><ul><ul><ul><li>Can also be done for each Siebel Server, or Server Component </li></ul></ul></ul><ul><ul><li>Set other parameter to configure SARM for your component </li></ul></ul><ul><ul><ul><li>SARMEnabled= True on Call Center Object Manager Parameters </li></ul></ul></ul><ul><li>ON THE WEB SERVER </li></ul><ul><ul><li>Set the environment parameters & Restart Web Server </li></ul></ul>
Setting it Up <ul><li>Set Siebel ARM parameters on the Siebel Server </li></ul><ul><li>Set environment variables on the Web server </li></ul>Maximum file size (bytes) Default: 15,000,000; No upper limit SIEBEL_SARMFileSize SARMFileSize SARM Data File Size – maximum size of a SARM File Per component instance Default: 4; No upper limit SIEBEL_SARMMaxFiles SARMMaxFiles SARM Max Number of Files – number of SARM files in LOG directory (Siebel Server only) Buffer flush period (minutes) Range: 1 – 60; Default: 3 SIEBEL_SARMPeriod SARMPeriod SARM Period – how often the buffer is emptied In-memory buffer size (bytes) Range: 100,000 – 50,000,000 Default: 5,000,000 SIEBEL_SARMBufferSize SARMBufferSize SARM Buffer Size – size of memory buffer Level-of-detail 0 (off) 1 (monitoring) 2 (diagnostics) SIEBEL_SARMLevel SARMLevel SARM Granularity Level Description Environment Variable Parameter Alias Parameter Display Name
CSV Output in Excel <ul><li>Open CSV file for the Siebel component in a spreadsheet or similar tool, sort by SARMID and then by AreaDesc and SubAreaDesc – history of events </li></ul>
Filter on RootID and Top 10 Slowest Areas <ul><li>To locate details for the worst performing area: </li></ul><ul><ul><li>Filter by RootID and worst response times (Top 10 Duration) </li></ul></ul><ul><ul><li>Find the SarmIDs of worst performing areas </li></ul></ul>
Diagnose <ul><ul><li>Look for High Response Times AFTER initial View display (SQL will not be cached on the first visit) </li></ul></ul><ul><ul><li>At some point in user session trace an issue will typically need to be investigated further using CSV data or other tools </li></ul></ul>
SARMQuery <ul><li>SARMQuery is a new command line tool available in 8.0 </li></ul><ul><ul><li>Run SARMQuery –tips to see lots of example </li></ul></ul><ul><ul><li>Gives basic examples of performance queries </li></ul></ul><ul><ul><li>Requires some SARM files to be already generated (of course) </li></ul></ul><ul><ul><li>Can be output to a text file using –verbose and –o </li></ul></ul><ul><li>Also useful SARMQuery -help </li></ul>
Good Reading <ul><li>http://www.oracle.com/us/products/applications/siebel/040131.htm SARM Description </li></ul><ul><li>http://siebel-essentials.blogspot.com/2009/04/workflow-vs-script.html Using SARM to speed check Scripting or Workflow </li></ul><ul><li>http://www.tcoug.org/agenda/Oracle_Systems_and%20_Applications_Mgmt.pdf presentation of OEM </li></ul>