siebel performance and scalability

68
©Siebel S stems 2003 – Do not distribute or re-use without ermission ©Siebel Systems 2003 – Do not distribute or re-use without permission Siebel 7 Performance and Scala Siebel 7 Performance and Scala Inside the Siebel Server Inside the Siebel Server Richard Sands Richard Sands Siebel Expert Services Siebel Expert Services

Upload: arun-singh

Post on 07-Oct-2015

7 views

Category:

Documents


0 download

DESCRIPTION

Siebel Performance and Scalability

TRANSCRIPT

  • Siebel 7 Performance and ScalabilityInside the Siebel Server

    Introduction to Siebel Architecture

    How components scaleWithin serversAcross servers

    Siebel PerformanceHintsMonitoringDiagnosis

  • Performance and ScalabilityComponent ScalabilityScalability Across ComponentsNetwork ScalabilityArchitecture OverviewPerformance OptimizationPerformance Management

  • Siebel 7 Infrastructure OverviewLoad BalancerSiebel Enterprise ServerCentral Siebel DB ServerExternal ApplicationsWAP Gateway ServerWireless WebBrowser User InterfaceMobile (Disconnected) Web UserObject ManagerData ManagerBrowser User InterfaceLocal DBSiebel Web ServerExtensionWeb Server(s)Connected Web User (Employee)Browser User InterfaceGateway Name ServerCentral DispatchRegional SiebelDB ServerConnected Web User (External)Browser User InterfaceSIEB SYNCSiebel eAISiebel ReplicationSiebel RemotePDA

  • Major Client TypesAll accessed through a browserHigh Interactivity (Employee facing)Very demanding on browserCan only run on strictly defined browser configurationsRich user interfaceStandard Interactivity (Customer facing)Less demanding on browserCan run on wide variety of browsersStandard web user interfaceMobile ClientHas local copy of Siebel databaseUser-specific subset of dataLocal server functionalityQuasi-web serverBusiness Object and Data Manager functionalityUses High Interactivity interface

  • Siebel Enterprise Server SWSESiebel Web Server ExtensionsWeb Server Plug-In Manages communications to Siebel EnterpriseIncludes cache for static files (images, etc)Web ServerSWSEEnterprise ServerGateway Server

    Gateway Name Server

    Resonate CentralDispatch

  • Siebel Enterprise Server Gateway ServerServes as a single entry point Includes Siebel Gateway Name ServerSiebel Enterprise configuration data (static)Siebel Enterprise operations data (dynamic)Optionally includes Resonate Central DispatchLoad balancingWeb ServerSWSEEnterprise ServerGateway Server

    Gateway Name Server

    Resonate CentralDispatch

  • Siebel Enterprise Server Gateway Name ServerHolds Enterprise ConfigurationStores component definitions, parameters, and connectivity informationStored in siebns.dat fileProvides Connectivity information when Resonate not usedDynamically registers Siebel Server and component availability

    Web ServerSWSEEnterprise ServerGateway Server

    Gateway Name Server

    Resonate CentralDispatch

  • Siebel Enterprise Server Resonate Central DispatchLoad Balances Object Manager ComponentsProvides resilience for load balanced componentsProvides session managementSimplifies firewall configurationNot always neededEnterprise ServerGateway Server

    Gateway Name Server

    Resonate CentralDispatch

  • Architecture Overview Siebel ServerFramework for running server componentsObtains configuration information from the Gateway Name ServerRuns as a Windows serviceSiebel Enterprise Server is a logical grouping of Siebel ServersWeb ServerSWSEEnterprise ServerSiebel ServerComponentSiebel ServerComponentGateway Server

    Gateway Name Server

    Resonate CentralDispatch

  • Architecture Overview Server Components

    A type of program, executed as a taskExamples:Object Manager - Handling client requestsWorkflow Process Manager Processing WorkflowsFile System Manager - Handling access to Siebel File System

    Web ServerSWSEEnterprise ServerSiebel ServerComponentSiebel ServerComponentGateway Server

    Gateway Name Server

    Resonate CentralDispatch

  • Architecture Overview Server Component TypesDifferent types of component run in different ways:BackgroundBackground mode components execute tasks to perform background operations for the Siebel Server. After a background mode component task starts, it runs until you explicitly stop the task, or until the Siebel Server itself is shut down.

    InteractiveInteractive mode components start tasks automatically in response to client requests. Interactive mode component tasks execute for as long as the client maintains the session, and end when the client disconnects.

    BatchBatch mode components execute tasks in response to requests. Batch mode component tasks execute until they finish processing.Internal batch tasks are initiated by other Siebel Server tasksExternal batch tasks are initiated by Server Manager

  • Architecture Overview Component Execution PlatformsDifferent types of component execute in different platforms:Single ThreadedSingle threaded components have one execution stream per process. So each operating system process supports a single Siebel Task.i.e. EIM

    Multi-threadedMulti-threaded components have multiple execution streams within a single process.. So each operating system process can support multiple Siebel Tasks.i.e. Object Managers

  • Performance and ScalabilityComponent ScalabilityScalability Across ComponentsNetwork ScalabilityArchitecture OverviewPerformance OptimizationPerformance Management

  • Component ScalabilityHow Components Scale in a Siebel 7 Enterprise

    Scaling within a serverMulti-threaded componentsSingle-threaded components

    Scaling across serversLoad balancingResonate central dispatchLoad sharingServer Request BrokerServer Request Processor

  • Scaling Within a Siebel ServerSingle Threaded ComponentsCreate multiple processes (tasks)Some components are limited i.e.Transaction Processor max 1 per serverWorkflow Monitor Agent max 1 per policy group per EnterpriseCan be started manually, through Server Request Broker, or automatically (Default Tasks parameter)

    Multi-Threaded ComponentsCreate multiple threads &/or processes (tasks)Control distribution through component parameters

  • Multi-Threaded ComponentsCan have multiple processes as well as multiple threads

    Important to control ratio of threads to processesCan have major impact on performanceDetermined primarily by rate of switches between threads100:1 good starting point for Client Object ManagersAssumes 30sec think timeFor 15 sec think time use 50:1

    Can set additional processes to spawn on demandWill always start minimum number specifiedWill start additional processes as needed to maintain process:thread ratioLimit on maximum number of processes

  • Memory ScalabilityMulti-Process, Multi-Threaded modelAll threads in a process share the same memory spaceEach Process has a separate memory space

    No single process needs a large memory spaceOperating system manages memory allocationIf a single process needs more than 1GB theres normally something wrongNo need for large process memory model (/3GB switch)Can use Microsoft PAE for access to large memory capacitiesOperating system can allocate memory to each process

  • Multi-Threaded Component ParametersTypically set per component

    Maximum number of tasks (MaxTasks)Maximum number of Tasks per component per serverOne thread per taskSome additional background system threads - not counted by MaxTasks

    Maximum number of Multi-Threaded servers (MaxMTServers)An MTServer is a multi-threaded component processThis defines the maximum number of MTServers per component per server

    Minimum number of Multi-Threaded servers (MinMTServers)This defines the minimum number of MTServers per component per serverSets the number of MTServers started on server startup

  • Configuring the Object ManagersSet MaxTasks = peak (concurrent users + anonymous users)Anonymous users are used for login screens before user authenticatesTypically set to 10%-15% of concurrent user count

    Set MaxMTServers = MaxTasks / 100An MTServer is equivalent to single instance of Object Manager100 : 1 ratio is assuming average 30 second think time between user operationsIf average user think time is 15 seconds then ratio is 50 : 1 ( 50% of 100:1) If average user think time is 60 seconds then ratio is 200 : 1 (200% of 100:1)

    Set MinMTServers = MaxMTServersSetting MinMT Servers < MaxMTServers may cause delay of service for new users as MTServer gets initialized.

  • Multi-Threaded Component Parameter ExampleObject Manager configuration for 800 Call Center usersConcurrent Users800 Call Center UsersObject Manager Level

  • Scaling Across Siebel ServersDepends on how component task initiatedComponent Group AssignmentWhich servers a component is available onObject ManagersLoad balanced (Resonate Central Dispatch)Not valid for eConfigurator Object ManagerSiebel RemoteManual allocation of mobile client to Siebel ServerServer RequestsServer Request Broker &/or Server Request ProcessorManual Requests (start task)Manually specified serverSpecial casesCTIeConfigurator

  • Multi-Threaded Component ScalabilityEnterprise ServerSiebel ServerSales Object Manager

  • Load BalancingEnterprise Server

  • Performance and ScalabilityComponent ScalabilityScalability Across ComponentsNetwork ScalabilityArchitecture OverviewPerformance OptimizationPerformance Management

  • Server Request Broker & Server Request ProcessorServer Request Broker (SRBroker)Used to start synchronous Siebel Server tasksServer Request Broker & Server Manager are the only components which directly start tasks.New in Siebel 7Replaces Server Request Manager (SRMSynch) in Siebel 2000Background componentMulti-threaded componentNeed to set MaxTasks accordingly

    Server Request Processor (SRProc)Used to start asynchronous Siebel Server tasksManages queued requestsCalls SRBroker to manage task executionBackground component

  • Server Request BrokerAccepts requests from other Components

    Will try to service request locallyIf component is available on same Siebel Server then this is always used

    If not available locally then will use other Siebel ServersMaintains internal table of components available on each Siebel ServerWill route requests round Siebel Servers in turn (round-robin)

    Multi-threaded componentMay need to increase MaxTasks

    Should always be running on all servers

  • Siebel Server Server Request BrokerServer Request BrokerServer Request BrokerServer Request BrokerWorkflow Process ManagerWorkflow Process ManagerObject ManagerRun Assignment TaskAssignment ManagerAssignment ManagerIs Assignment available on this server?

  • Siebel Server Server Request BrokerServer Request BrokerServer Request BrokerServer Request BrokerWorkflow Process ManagerWorkflow Process ManagerObject ManagerRun Workflow ProcessAssignment ManagerIs Workflow Manager available on this server?Assignment ManagerChoose server on round-robin basis

  • Server Request ProcessorProcesses asynchronous requests

    Request submitted by creating record in tableS_SRM_REQUEST

    Server Request Processor reads from tableRequest must:Be active (reached activation time)Not be specified for a different Siebel ServerNot being processed by other Server Request Processor

    Eligible requests submitted through Server Request Broker

    Normally runs on all Siebel Servers

  • Siebel Server Server Request ProcessorS_SRM_REQUESTSRProcSRBrokerTaskSleep IntervalRequest Queue

  • Performance and ScalabilityComponent ScalabilityScalability Across ComponentsNetwork ScalabilityArchitecture OverviewPerformance OptimizationPerformance Management

  • Connection PoolingSiebel 7 can pool sessions at two levels:Web server to Siebel EnterpriseSISNAPI Connection PoolingMultiple SISNAPI (Siebel) sessions through one TCP sessionReduces operating system overhead and network trafficEnabled by default Set to 20Controlled by component parameter: Number of Sessions per SISNAPI Connection

    Siebel Object Manager to DatabaseDatabase connection poolingSQL traffic for multiple Siebel users through one database sessionReduces session overheads on database serverDisabled by defaultSuitable for larger deployments (over 500 concurrent users)

  • Database Connection PoolingConnections use native database protocolsSome components directly access native protocolObject ManagersSiebel 7 supports its own database connection poolingUsed for connections from Object ManagersTwo types of connectionShared for general transactionsSpecialized for long running Not always appropriateShould carefully evaluate tradeoffsBenefits of less database sessions to maintainRisk of database session contention

  • Database Connection PoolingDatabase session uses login for first user to establish session

    Database connection pooling controlsDefined as component parametersSet to -1 to disable (default)

    Specialized (Dedicated) Database sessionsAll valid per component process (MT Server) per Siebel ServerMaxTrxDbConns- Maximum number of specialized DB sessionsMinTrxDbConns - Minimum number of specialized DB sessions to be kept in pool

    Shared Database sessionsValid per component per Siebel ServerMaxSharedDbConns- Maximum number of shared DB sessionsMinSharedDbConns - Minimum number of shared DB sessions to be kept in pool

  • Database Network ArchitectureSiebel ServerObject ManagerSharedSharedSpecializedClient ConnectionsServer Request ProcessorThreads (sessions)Processes (components)Native Database Connectivity (ODBC for SQL Server)

  • Performance and ScalabilityComponent ScalabilityScalability Across ComponentsNetwork ScalabilityArchitecture OverviewPerformance OptimizationPerformance Management

  • General Siebel Server OptimisationDisable unused components and component groupsThese just use up system resources

    Consider using common log file for multi-threaded components that generate too many log files

    Consider using multiple instances/server tasks for certain activitiese.g. Parallel EIM, multiple Workflow Policy Groups, etc.

    Monitor resource utilization by processes and threads

  • Object Manager OptimizationEnabling View Caching for High Interactive modeSet in user preferencesFaster client response times, by as much as 1 secondBetter network behaviorExpensive, 3MB per view cachedMost users use < 10 views / pagesUses LRU mechanism to flush out cache

    If not using eAdvisor or browser based eConfiguratorOn cfg file set EnableCDA = FALSE

    Set Timed Statistics Off

    Set all Log Levels to 1

  • EAI OptimizationMinimize fields in Integration Components

    Keep XML records smallXML is very verbose and needs to be parsed

    Lump several records into one transactionwill achieve higher throughput

    If possible keep records to 15 fieldsMore will reduce throughput

    Keep in mind that an XML field translates to BC fieldIntegration Object initialize Business Objects and Business ComponentsThe more fields per record the slower it will process

  • EAI OptimizationReduce SessPerSisnConn for EAI AdaptersDo this only if you are going to bombard adapter, i.e. little or no think times

    For very high throughput systems where you are dedicating EAI machinesConsider letting the SRB forward BIM requests to dedicated machinesBIM processing can become bottleneck if BIM processing is complexMay be necessary to have a higher EAI Adapter:BIM machine ratio (i.e. 1:x)

    Use Session-Mode for high volume inbound HTTPGreatly increased throughputNo overhead for authentication & session startup for each message

  • Workflow Process OptimisationUse Run-Time Events for process automationMinimize use of Workflow Policies since workflow policy work at the database layer and do not take advantage of the level of abstraction provided with the Object ManagerPerformance gain since the decision event takes place on the business object layer and so no trigger is created on the tableNo need for scripting

    Workflow Process DistributionWorkflow Policies cant be directly load balancedAsynchronous Workflow Processes are distributed by SRProcessorSynchronous Workflow Process requests are distributed by SRBroker

  • Application Performance - ConfigurationKeep scripting small and tightAvoid the use of script wherever possibleRemember it is still interpreted code and will execute as suchEnsure all objects are destroyed after use avoid memory leaks

    MVG AppletsKeep to a minimum as they increase SQL complexityUse primary joins as much as possible; reduces number of SQL statements

    Use SmartScript only where really requiredE.g. Novice Call Center users

    Avoid putting external news pages on login page3rd party web sites can be slow

  • Application Performance - ConfigurationActivate only fields that are absolutely necessaryBecome active when displayed; Force Active in BC configurationGeneral rule, the more fields on a page the slower the pageRecently saw customer with 750 fields and 80 tables for one applet

    Include only manageable set of fields on list appletsMany customers use several dozen fields; not usable and slow performance

    Pages with more than three applets will perform slower for HI applicationsReason for this is not really the number of applets, rather the number of fields

    PickLists set Long List to TRUE if returning large data sets

    Tree Applets can be slowThey generate Bill of Materials type queries

  • Network Performance Siebel ConfigurationBrowser ValidationReduces the need for server communications to validate data entryImplement through browser script

    Immediate Posting of ChangesWhere the Immediate Post Changes flag is set against a field data will be transferred whenever a field is changedIncurs additional round trip with approx 2KB data

    Keep to no more than two Applets per View

    Minimize Popups

    Limit columns in List Applets

  • Network Performance Siebel SettingsView CachingView definitions cached in browser memoryRequires approx 3MB memory per viewTypically around 10 cached views is enoughUses LRU algorithm to maintain cache contentsPersonalization and Applet Toggles wont use view cachingEnabled through Object Manager configuration (.cfg) file setting[SWE]EnableViewCache=TRUEControlled through:User Preferences > Behaviour > View Cache SizeDefault: 10

  • Network Performance Siebel SettingsCompression (Dynamic Content)Performed by SWSEDo not use web server dynamic compression (application files)Enabled through SWSE configuration file (eapps.cfg)[Defaults]DoCompression = TRUECompression (Static Content)Performed by web server (IIS only)

  • Network Performance Web Server / Browser SettingsBrowser SettingsDont clear cache except when necessaryEnsure Empty Temporary Internet Files Folder when browser is closed option is not enabled.

  • Network Performance Web ServerWeb Server SettingsUse HTTP keep-aliveReduces the need to negotiate TCP sessions for each HTTP message

  • Network Performance Web ServerWeb Server SettingsSet Content Expiration2 days is typical settingSet through Internet Information Services AdministrationHTTP Headers > Content Expiration

  • Network Performance Web Caching25KBUncached

  • Network Performance Web Caching2KBCached

  • Network Performance Web Caching0KBCached with Expiration

  • Performance and ScalabilityComponent ScalabilityScalability Across ComponentsNetwork ScalabilityArchitecture OverviewPerformance OptimizationPerformance Management

  • Performance Problem DiagnosisWhat is the problem?Slow response times reported by User(s)?Resource utilisation problem reported by Administrator?

    Where is the problem?Who is experiencing the problem? One user, a subset of users, all users?Network problem?Database problem?Siebel Server problem?Web Server problem?

    How do we resolve the problem?

  • Performance Problem Diagnosis continuedProblem IdentificationUser reports slow response timesIdentify precise actions carried out by user at the precise time of the problem set up a problem reporting process, with required information to be supplied by userSubset of Users report slow response timesAre users on the same LAN segment? Are other users experiencing problems?Are users all performing similar tasks?All users report slow response timesIs it specific transactions (views) that are slow?Do all transactions run slowly?System Administrators should check system resource utilisationSystem Administrator(s) report resource utilisation problemsAre users experiencing problems as a result?Which area of the system is experiencing problemsAsk questions of the relevant people need more information than The system seems to be slow

  • Performance Problem Diagnosis continuedDiagnosis ToolsDatabase SQL Trace (SQL Server Profiler)Siebel Server Object Manager SQL TraceWeb Server SWSE Statistics PageWeb Server SWSE LogWeb Server Log (e.g. IIS log)Server Resource Utilisation toolsWindows: PerfMon, Task ManagerTECHNOTE 382 How can users generate Performance Monitor information into a log file?TECHNOTE 361 Memory Utilization in Siebel eBusiness Applications

  • Performance SQL TraceUse Database SQL Trace or Siebel Component SQL Trace to identify poor-performing queriesCorrect Application ConfigurationAdd indexes (except unique indexes)Refresh database statistics (not on Oracle)Siebel Component SQL TraceSet SQL Trace Flags parameterSet Event Log Levels to 5 for %SQL%Srvrmgr: change evtloglvl %SQL%=5 for component sccobjmgr_enu server Scan log file for SQL Statement Execute TimeNeed to use SQL Server Profiler for full captureSiebel uses specialized ODBC connection modelsNeed to reproduce fully in order to get correct query execution plan

  • Performance Siebel Web Server LogsSWSE Log/SWEApp/log/ssyymmdd_nn.logSet log=details in eapps.cfg file for more detailed loggingSet environment variables for full detailSIEBEL_SESSMGR_TRACE=1SIEBEL_SISNAPI_TRACE=1SIEBEL_LOGEVENTS=ALLRestart Web ServerWeb Server LogIIS: \system32\Logfiles\W3SVC1\exyymmdd.logIn Internet Services Manager, enable extended logging to include Client IP address, User Name, Time TakenUse to identify long-running HTTP requests or individual user machines experiencing problems

  • Performance Siebel SWSE Statistics PageURL: /_stats.swe?verbose=high/_stats.swe?verbose=high&reset=true to reset statsEapps.cfg configuration file:Allowstats=TRUESessionMonitor=TRUEAllows individual user session statistics, in Current Sessions section:

    Total Time: Time for all users HTTP requestsGeneral Stats-Count: # user HTTP requestsGeneral Stats-Mean: Average time for each user HTTP requestFrequency-Mean: Average time between each user HTTP request

    EventTotal TimeGeneral Stats (count, mean, std dev)Frequency (mean, std dev)siebel.TCPIP.None.None://jmullisp4:2320/siebel/SCCObjMgr_enu/jmullisp4/!1.8c0.4023.3ec3708d SADMIN14.677954 0.2718 0.6826 11.3359 44.6484

  • Performance Siebel SWSE Statistics Page continuedSession Identification!A.B.C.DA = Siebel Server IdB = Siebel Server Component Process IdC = Siebel Server Component Task IdD = TimestampAll values in hexadecimalUse to map session information to Siebel Server Task logfile

    Section Current Operations ProcessingOperations in bold type have been running > 10 seconds

  • Volume Performance TestingUsing Volume Performance Testing Tools, such asMercury LoadRunnerSegue SilkPerformerUse to measureClient Response times under high user loadResource usage under high user loadWeb Servers, Siebel Servers, Database Server, NetworkScalability of Siebel environmentHardwareUse full duplication of production hardware, if possibleIf not, scale down numbers of servers proportionatelyDatabaseTune Object Manager SQL prior to volume performance test exerciseUtilise Object Manager SQL trace flags

  • New Feature - SARMFeaturesSiebel Application Response time profiling SARM (7.5.3)ARM Standard Support (7.7)CPU and Memory Usage Profiling (7.7)Additional Siebel component metrics (7.7)BenefitsProactive monitoring of application response timeDiagnosis of response time problems in the application and infrastructureEnables tuning of applications to meet service level commitmentsEnables diagnosis of memory consumption

  • SARM Run-time ArchitectureSiebel ServerServerComponentSARM Framework3rd PartyARM APILibrarySARMLogARMLog3rd PartyARM Tool

  • SARM Instrumentation for 7.5.3

  • Performance and ScalabilityComponent ScalabilityScalability Across ComponentsNetwork ScalabilityArchitecture OverviewPerformance OptimizationPerformance Management

  • Questions and Answers

    Siebel Systems 2003 Do not distribute or re-use without permission

    Siebel 7 Performance and Scalability

    Inside the Siebel ServerRichard Sands Siebel Expert Services

    Siebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan SiebelSiebel1-Hogan Siebel