techrefguide_

Upload: vmro

Post on 07-Jan-2016

12 views

Category:

Documents


0 download

DESCRIPTION

epciro

TRANSCRIPT

  • Epicor ERPPerformance Tuning Guide100_700

  • Disclaimer

    This document is for informational purposes only and is subject to change without notice. This document and itscontents, including the viewpoints, dates and functional content expressed herein are believed to be accurate as of itsdate of publication. However, Epicor Software Corporation makes no guarantee, representations or warranties withregard to the enclosed information and specifically disclaims any applicable implied warranties, such as fitness for aparticular purpose, merchantability, satisfactory quality or reasonable skill and care. As each user of Epicor software islikely to be unique in their requirements in the use of such software and their business processes, users of this documentare always advised to discuss the content of this document with their Epicor account manager. All information containedherein is subject to change without notice and changes to this document since printing and other important informationabout the software product are made or published in release notes, and you are urged to obtain the current releasenotes for the software product. We welcome user comments and reserve the right to revise this publication and/ormake improvements or changes to the products or programs described in this publication at any time, without notice.The usage of any Epicor software shall be pursuant to an Epicor end user license agreement and the performance ofany consulting services by Epicor personnel shall be pursuant to Epicor's standard services terms and conditions. Usageof the solution(s) described in this document with other Epicor software or third party products may require the purchaseof licenses for such other products. Where any software is expressed to be compliant with local laws or requirementsin this document, such compliance is not a warranty and is based solely on Epicor's current understanding of such lawsand requirements. All laws and requirements are subject to varying interpretations as well as to change and accordinglyEpicor cannot guarantee that the software will be compliant and up to date with such changes. All statements ofplatform and product compatibility in this document shall be considered individually in relation to the products referredto in the relevant statement, i.e., where any Epicor software is stated to be compatible with one product and alsostated to be compatible with another product, it should not be interpreted that such Epicor software is compatiblewith both of the products running at the same time on the same platform or environment. Additionally platform orproduct compatibility may require the application of Epicor or third-party updates, patches and/or service packs andEpicor has no responsibility for compatibility issues which may be caused by updates, patches and/or service packsreleased by third parties after the date of publication of this document. Epicor is a registered trademark and/ortrademark of Epicor Software Corporation in the United States, certain other countries and/or the EU. All othertrademarks mentioned are the property of their respective owners. Copyright Epicor Software Corporation 2014.All rights reserved. No part of this publication may be reproduced in any form without the prior written consent ofEpicor Software Corporation.

    100_700

    Revision: July 03, 2014 12:13 p.m.

    Total pages: 70

    sys.ditaval

  • Contents

    Introduction............................................................................................................................5Purpose of this Guide.......................................................................................................................................5

    Intended Audience...........................................................................................................................................5

    How it is Organized.........................................................................................................................................5

    Performance Tuning Resources.............................................................................................7Hardware Sizing Guide....................................................................................................................................7

    Performance and Diagnostic Tool.....................................................................................................................7

    VMWare Best Practices Guides.........................................................................................................................8

    Common Patterns...................................................................................................................9Frequent User Complaints................................................................................................................................9

    Everything Is Slow............................................................................................................................................9

    Sometimes Everything Is Slow..........................................................................................................................9

    Specific Program Is Slow................................................................................................................................10

    Reboot Corrects Poor Performance................................................................................................................10

    Unable to Reproduce by Epicor Technical Support..........................................................................................10

    Standard Metrics...................................................................................................................11SAN (I/O) Test Utility............................................................................................................13

    Run the SQLIO Utility (Standard Metric)..........................................................................................................13

    Performance and Diagnostic Tool.......................................................................................15Installation.....................................................................................................................................................15

    Client Diagnostics..........................................................................................................................................16

    Generate Client Logs..............................................................................................................................16

    Analyze Client Logs................................................................................................................................17

    Fields and Sheets....................................................................................................................................19

    Client Tracing Log Options......................................................................................................................20

    Scenarios................................................................................................................................................21

    Send Client Logs to Epicor......................................................................................................................21

    Configuration Check......................................................................................................................................22

    Enter Configuration Check Settings........................................................................................................23

    Analyze Configuration (Standard Metric)................................................................................................24

    Network Diagnostics......................................................................................................................................25

    Test Network Performance (Standard Metric)..........................................................................................25

    Server Diagnostics..........................................................................................................................................26

    Write Permission.....................................................................................................................................26

    Server Log Size and Details.....................................................................................................................27

    Generate Server Logs..............................................................................................................................29

    Access Server Logs..................................................................................................................................31

    Analyze Server Logs................................................................................................................................32

    GetRowsKeepIdleTime Chart (Standard Metric).......................................................................................34

    Fields......................................................................................................................................................36

    3Epicor ERP | 100_700

    ContentsPerformance Tuning Guide

  • Scenarios................................................................................................................................................38

    Additional Diagnostic Resources.........................................................................................39Locking and Blocking.....................................................................................................................................39

    Set up the sp_lock3.sql File.....................................................................................................................39

    Configure the sp_lock3.sql File...............................................................................................................40

    Create a SQL Job....................................................................................................................................40

    Start the Locks Log.................................................................................................................................42

    Review the Locks Log..............................................................................................................................42

    Locking and Blocking Article...................................................................................................................43

    Deadlock Tracing...........................................................................................................................................43

    Deadlock Graph Setup............................................................................................................................43

    Activate the SQL Deadlock Graph...........................................................................................................44

    Stop the SQL Deadlock Graph.................................................................................................................44

    Load Distribution..................................................................................................................46Application Servers........................................................................................................................................46

    Task Agents...................................................................................................................................................46

    Create Task Agent Rules................................................................................................................................47

    Application Tuning...............................................................................................................49Application Troubleshooting..........................................................................................................................49

    Client Cache..................................................................................................................................................49

    Locate the Client Cache..........................................................................................................................50

    Memory Cached Programs.............................................................................................................................50

    Client Customizations....................................................................................................................................50

    Order Entry Performance Tuning....................................................................................................................51

    MRP Performance Tuning...............................................................................................................................52

    BAQ Performance Tuning...............................................................................................................................54

    BAQ Server Settings................................................................................................................................54

    BAQ Best Practices..................................................................................................................................56

    SQL Syntax Issues....................................................................................................................................57

    Baseline Performance Tests.................................................................................................58Test Setup......................................................................................................................................................58

    Start the Test..........................................................................................................................................58

    Test Procedure...............................................................................................................................................59

    Activate the Trace Log............................................................................................................................59

    Open Sales Order Entry Form.........................................................................................................................59

    Test Form Performance Time...................................................................................................................59

    Verify and Fix Performance Test..............................................................................................................61

    Customer Retrieval (Standard Metric).............................................................................................................62

    Run Customer Retrieval Test...................................................................................................................62

    Sales Order Line Entry (Standard Metric).........................................................................................................63

    Test Sales Order Detail Line Performance.................................................................................................63

    Purchase Order Entry (Standard Metric)..........................................................................................................65

    Test Purchase Order Detail Line Performance...........................................................................................65

    Performance Tuning Strategy..............................................................................................67

    Epicor ERP | 100_7004

    Performance Tuning GuideContents

  • Introduction

    Purpose of this Guide

    The Performance Tuning Guide contains information on how to evaluate the performance of your Epicor ERPapplication. You can then determine what may be the cause(s) of poor performance and make changes as needed.

    Use this guide to perform diagnostic tests to compare your system performance against Epicor ERP standardmetrics. You can follow these tests for your own evaluation. These tests are also used by Epicor consultants andtechnical support, so you can review these results with Epicor and develop a performance improvement plan.

    Important This version of the Performance Tuning Guide for use with Epicor ERP version 10.0 or later.

    Intended Audience

    The guide is intended for technical consultants, partners, and system administrators to help ensure the EpicorERP application performs as expected and to provide guidance on performance areas that should be addressedbefore contacting Epicor consultants or Epicor Technical Support.

    Individuals who perform all or some of these tasks will benefit from reviewing the Performance Tuning Guide.

    How it is Organized

    This guide explains how you can test the performance of your Epicor application.

    The following are the main sections of this guide:

    Performance Tuning Resources - Details the performance tuning resources available for use with EpicorERP. Review this section to learn more about each primary resource.

    Common Patterns - Describes the common patterns of poor performance. Each pattern is described alongwith suggestions for testing and potential solutions.

    Standard Metrics - Epicor has established benchmark metrics for optimal performance. This section of theguide contains a table that describes each benchmark metric and the tests you run to evaluate it.

    SAN (I/O) Test Utility - You can use the SQLIO Utility to evaluate various parameters of an input/output(I/O/) disk subsystem. Use this section of the guide to learn how to download and run this key Microsoftutility.

    Performance and Diagnostic Tool - Documents how you install and use the Performance and DiagnosticTool, the key program you will use to evaluate the performance of client and server installations. This sectiondocuments how you activate the client logs and server logs for the Epicor application and then view themwithin the Performance and Diagnostic Tool. It also describes the features, sheets, and fields available withinthis tool.

    Application Tuning - This section contains some application tips and techniques you can do inside the Epicorapplication. You should only use the tips and techniques that match your use of the Epicor application.

    5Epicor ERP | 100_700

    IntroductionPerformance Tuning Guide

  • Baseline Performance Tests - Provides detailed instructions for performing primary tests to measure howwell your installed system performs. Epicor recommends you run these tests after the application is setup andconfigured to verify the Epicor application has optimal performance. You can also run these tests periodicallylater on to make sure the application performance has not degraded.

    Epicor ERP | 100_7006

    Performance Tuning GuideIntroduction

  • Performance Tuning Resources

    Epicor representatives and customers can leverage some key resources to improve the efficiency of the Epicorapplication and the systems on which it runs.

    Hardware Sizing Guide

    The Hardware Sizing Guide provides a practical approach to estimating the capacity you need for both theEpicor ERP application and the database server.

    The Hardware Sizing Guide matches the number of users against the database activity that occurs each day. Itnext matches these two usage variables against a list of potential hardware configurations. You can then reviewthe various hardware and network items you could implement to improve application performance.

    This guide also estimates the future load that may be required later as well. So even if the current network andhardware configuration is adequate, you can still use this document to determine whether it makes sense toupgrade the system now to prevent performance issues before they occur.

    This document is intended as a tool to help identify potential system upgrades. Before making any significantchanges, Epicor representatives, network consultants, and customers should work together to determine thebest outcome. Epicor representatives and network consultants may also have further recommendations specificto a customer organization that cannot be documented in this guide.

    The Hardware Sizing Guide is available to download from EPICWeb:

    https://epicweb.epicor.com/products/epicor-erp-10/downloads

    Performance and Diagnostic Tool

    Use the Performance and Diagnostic Tool to evaluate how the Epicor ERP application interacts with the system.This important tool can identify changes that can potentially achieve significant performance results.

    You run the Performance and Diagnostic Tool to analyze Epicor logs. These logs help measure performance onboth the client and server installations of the Epicor application. You use this tool to evaluate the following systemareas:

    Client Performance

    Server Performance

    Network Execution Times

    Server Execution Times

    Client Configurations

    The Performance and Diagnostic Tool is included with your Epicor ERP application. Review the Performance andDiagnostic Tool section later in this guide for installation and configuration information.

    7Epicor ERP | 100_700

    Performance Tuning ResourcesPerformance Tuning Guide

  • VMWare Best Practices Guides

    Virtual environments provide flexibility and can scale up or down more easily than physical environments. Throughthis design approach, you can clone machines and add them to the load balancing pool to accommodate changesin usage patterns.

    If you are implementing VMWare in your environment, be sure to review the performance tuning documentsreleased by VMWare. These .pdf guides contain the information you need to improve the performance of yourvirtual environment.

    http://www.vmware.com/files/pdf/solutions/SQL_Server_on_VMware-Best_Practices_Guide.pdf

    http://www.vmware.com/pdf/Perf_Best_Practices_vSphere5.5.pdf

    Epicor ERP | 100_7008

    Performance Tuning GuidePerformance Tuning Resources

  • Common Patterns

    This section describes some common patterns for poor performance and the causes for these patterns.

    If you are experiencing any of these common patterns, be sure to use the Performance and Diagnostic Tool asneeded to analyze the situation. This tool is discussed later in this guide.

    Frequent User Complaints

    Some users frequently complain about a performance problem. They experience poor performance regularly, butother users at this organization do not experience the same issues.

    You can turn on the trace log for the whole day on the end-user client machine that has the performance problem.You will most likely need to do this for several days to capture the required data. Be sure to also clear the tracelog file each day so you can better evaluate the results. Note if your trace log file expands too quickly, try to savethe trace log every two hours and start a new trace log.

    When the end user notifies you that the Epicor application had poor performance during the current day, youwill have the trace data you need. Save the trace log for that day. If you needed to save multiple trace logs forthe same day, review all the trace logs.

    If you are working with Epicor Technical Support, send the trace log (or multiple trace logs) to the consultant ortechnical support representative helping you with the issue.

    Everything Is Slow

    Everything is slow all of the time.

    The most likely cause behind this pattern is the hardware sizing for the production environment is not correct.Use the Hardware Sizing Guide to determine the recommended hardware; this guide evaluates data transactiontraffic, number of users, and the system software to determine the recommended hardware.

    Sometimes Everything Is Slow

    Sometimes everything slows down, but other times the performance is fine.

    This performance pattern could be caused by a number of reasons. Most likely, the slow performance occursbecause the Epicor ERP application was experiencing heavy data loading at that time. The other likely possibilityis that either a third party ODBC connection locked a record or the Epicor application has some other lockingissue. Review the Locking and Blocking and Deadlock Tracing sections later in this guide to identify and correctlocking issues.

    9Epicor ERP | 100_700

    Common PatternsPerformance Tuning Guide

  • Specific Program Is Slow

    A specific program is slow.

    The causes for this pattern are described in the previous Frequent User Complaints section. You will need to turnon the client trace log and have the end user follow the interface or data entry pattern again to recreate the poorperformance. You then have a trace log or multiple trace logs to review.

    Reboot Corrects Poor Performance

    Everything slows down, but a system reboot restores good performance.

    This common pattern can be caused by several issues:

    Typically several large reports or processes were generating at the same time, harming performance. Thesereports/processes stop when you exit and reboot the Epicor ERP application. Determine which reports and/orprocesses were running and evaluate whether your network has sufficient resources to handle simultaneouslyrunning these report/processes.

    Was a long generating process, such as MRP, running at the time your users experienced poor performance?If so, try to schedule the process at a time when less demand is being placed against the network.

    Was a process that requires a lot of resources, such as MRP, started on a different database (Test, Training,Pilot) being still run from the same server as your live database? If this is occurring, consider running thisprocess on a different server.

    Perhaps one or multiple business activity queries (BAQs) were running simultaneously, causing the slowperformance. Even one BAQ can cause a problem if both the SQL Server and the application server are runfrom the same machine. If this is the case, try to run these BAQs at a time when less demand is being placedagainst the network. Evaluate whether your network has sufficient resources to handle running these BAQs.

    Does your system have a memory leak? The client and server machines can then rapidly run out of memory,causing the slowdown.

    Are your records getting locked? Record locking can be caused either by the Epicor ERP application or by thirdparty applications.

    Unable to Reproduce by Epicor Technical Support

    Performance is slow on your server, but the Epicor test systems cannot reproduce the issue.

    If Epicor Technical Support is unable to recreate the performance issue, consider the following:

    Evaluate the differences in hardware. Your hardware sizing needs to be evaluated by you and an Epicorconsultant or Epicor Technical Support.

    Different data items are used for testing, and so the performance test is not comparing similar conditions.

    The poor performance occurred when the system was experiencing heavy data load, so the performanceissues were caused by this load.

    Epicor ERP | 100_70010

    Performance Tuning GuideCommon Patterns

  • Standard Metrics

    Epicor has developed a Standard Metrics table that identifies the benchmarks for optimal performance. Comparethese benchmarks against the customer system to locate areas of poor performance.

    These performance benchmarks can identify key areas of improvement. Once these performance values aredetermined, customers and Epicor representatives can investigate potential ways these performance values canbe tuned to achieve better results. This section first contains the Standard Metrics table and then a second exampletable that illustrates a specific company's metrics compared against these standard metrics.

    Epicor Standard Performance Metrics

    Standard Metrics (ExpectedResult)

    Epicor Component ImpactedPerformance Metrics

    Throughput of 300 MB/Sec, withless than 5ms or better latency

    Affects the SQL Server database Data drive.

    Performance of VMware machines as they arestored on the shared NAS.

    Storage Disk I/O

    (SQLIO Test Utility)

    400 millisecondsTests the general speed of the applicationserver.

    CPU Speed

    (Config Check)

    15 milliseconds average, lowperformance variabilitythroughout the day

    An overall system performance test. How fastdoes this common, static API method run overthis infrastructure? This value can be comparedacross many machines.

    GetRowsKeepIdleTime

    (GetRowsKeepIdleTimeChart)

    Server (Blue) < 0.5 seconds,Network (Green) < 0.4 seconds

    Impact of the network on the client experience.Network Test

    (Network Diagnostics)

    The Epicor application serverpasses the configuration tests

    Reviews the performance of the Epicorapplication server.

    Configuration Check

    (Config Check)

    Observed time to move throughcustomers < 1 Second

    This test measures database retrieval time byselecting and paging through customers.

    Customer Retrieval Test

    (Baseline Test)

    Add 20 lines Sales Order < 72seconds

    This tests the performance of Sales Order Entry,a commonly used, important business function.This test does not check customizations orBPMs.

    Sales Order Test

    (Baseline Test)

    Add 20 lines Purchase Order < 51seconds

    This tests the performance of Purchase OrderEntry, a commonly used, important businessfunction. This test does not checkcustomizations or BPMs.

    Purchase Order Test

    (Baseline Test)

    The following sections describe how you test for these standard metrics.

    11Epicor ERP | 100_700

    Standard MetricsPerformance Tuning Guide

  • Example CompanyA's Metrics

    CompanyAPhysical

    CompanyAProduction

    Expected ResultStandard Test

    N/A26 Mb/Sec> 300 Mb/Sec.Storage Disk I/O Throughput

    N/A37 Milliseconds*< 5 MillisecondsStorage Disk I/O Latency

    2713 Milliseconds3500 Milliseconds< 4000 MillisecondsCPU Speed

    (In CompanyAs instance, VMscurrently running on Dell R610, IntelX5570 2.93 GHz were tested.)

    20 Milliseconds80 Milliseconds*< 30 MillisecondsGetRowsKeepIdleTime

    N/AN/A< 500 MillisecondsNetwork Test - Server

    N/AN/A< 400 MillisecondsNetwork Test - Client

    PassPassPassConfiguration Check

    .8 Seconds1.2 Seconds

  • SAN (I/O) Test Utility

    You can evaluate the efficiency of a Storage Area Network (SAN) by running a Microsoft subsystem benchmarkutility called SQLIO. Through this utility, you test your system against the Storage Disk I/O standard metric.

    You use this utility to test various parameters of an input/output (I/O) disk subsystem like bandwidth(megabytes/second), latency (milliseconds), block size performance (64KB), file size, and I/O type (read/write andsequential against random). These parameters have a huge impact on I/O performance.

    You download the SQLIO utility from Microsoft. After you install SQLIO, you define which drive the utility willtest. You then run a series of three tests through this utility.

    Run the SQLIO Utility (Standard Metric)

    The following steps describe how you install, set up, and test I/O disk subsystem performance.

    1. Download the SQLIO utility from Microsoft.

    Use your internet browser to navigate to this site:

    http://www.microsoft.com/download/en/details.aspx?id=20163

    2. Install the utility. The default path is: C:\Program Files\SQLIO\

    3. Once the SQLIO utility is installed, navigate to the install path. Notice that several files installed with thisutility.

    Important Review the readme and USINGSQLIO text files to learn how to set up and use the tool.Before you run this utility, be sure to read this documentation.

    4. Right-click on the param.txt file and open it in Notepad.

    5. Now define the specific drives against which you want to test the I/O performance.

    Example C: \testfile.dat 2 0x0 80000

    6. Save the file and close the text editor.

    7. Launch the Windows Command Prompt by clicking Start > Run > CMD.The command window displays.

    8. Change the directory to the SQLIO folder.

    Example C:\users\admin>CD C:\Program Files\SQLIO

    9. Now run three tests using the parameters specified below.

    a. Test 1: Database (.mdf)

    13Epicor ERP | 100_700

    SAN (I/O) Test UtilityPerformance Tuning Guide

  • This test evaluates 64K random writes.

    In the command prompt, enter the following phrase:

    sqlio -kW -t8 s900 -o8 -frandom -b64 -BH -LS -Fparam.txt

    b. b. Test 2: Transaction Log (.ldf)

    This test evaluates 64K sequential writes.

    In the command prompt, enter the following phrase:

    sqlio -kW -t2 s900 -dM -o8 -fsequential -b64 -BH -LS Fparam.txt

    c. Test 3: TempDB

    This test evaluates 64K random writes.

    In the command prompt, enter the following phrase:

    sqlio -kW -t8 s900 -o8 -frandom -b64 -BH -LS -Fparam.txt

    Use the results of each test to evaluate how your disk I/O subsystem works in comparison to similar subsystems.

    Epicor ERP | 100_70014

    Performance Tuning GuideSAN (I/O) Test Utility

  • Performance and Diagnostic Tool

    Use the Performance and Diagnostic Tool to evaluate how the Epicor application performs through client, server,and network tests. You also use this tool to evaluate the system configuration and download additional diagnosticresources for use with SQL Profiler.

    If you are experiencing performance issues, you should first contact either your Epicor consultant or EpicorTechnical Support. If the performance issue cannot be resolved through this initial contact, the technical supportrepresentative or the consultant may recommend you use the Performance and Diagnostic Tool. This tool capturesperformance information, and you can organize this information to receive meaningful metrics that relate to theperformance of your Epicor ERP application. You can also export these results to Microsoft

    Excel

    for additional

    review and analysis.

    Through the Performance and Diagnostic Tool, you can evaluate:

    The performance of one client versus another client on the same system.

    The performance of business object methods on both the client and the server.

    Overall performance of the server and the network.

    Performance of business objects in one system against the same business objects on other systems.

    Performance of customizations, personalizations, Business Process Management (BPM) methods, and businessactivity querys (BAQs).

    The configuration of the Epicor ERP application.

    Important The Performance and Diagnostic Tool released with Epicor ERP version 10 is only compatiblewith the 10.0.600 version or higher. If you need to evaluate the performance of Epicor ERP 9.05 or earlier,download the Performance and Diagnostic Tool released with the 9.05 version.

    Installation

    Follow these steps to install the Performance and Diagnostic Tool.

    Tool Requirements:

    .NET 4.5 Runtime

    Windows 2008 R2 or Higher

    Tip The Performance and Diagnostic Tool can be installed on any desktop or laptop machine where younormally install the Epicor client. When using the tool, you will be able to connect to application serverson other machines.

    1. From Windows Explorer, navigate to the C:\Epicor installation folder. Expand the folder for your currentversion and then open the Utilities\ICE3 Performance Diagnostic Tool folder.

    Example C:\Epicor\ERP10\ERP10.0.700\Utilities\ICE3 Performance Diagnostic Tool

    2. Double-click the Performance and Diagnostics Tool icon.

    3. The Welcome window appears. Click Next.

    15Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • 4. Select the installation folder you want and click Next.

    5. Confirm the installation by clicking Next again.The Performance and Diagnostic Tool installs in the location you specified.

    6. Click Close.

    7. You can now launch the Performance and Diagnostic Tool. Depending on your operating system, you launchthis tool in different ways:

    a. If you are on Windows SQL Server 2008 R2 or Windows 7, click Start > All Programs > Epicor Software> Epicor Administrative Tools > Epicor Performance and Diagnostic Tool.

    b. If you are on Windows SQL Server 2012 or Windows 8, press the + F button to display theCharms bar; from the Apps screen, select Epicor Performance and Diagnostic Tool.

    Client Diagnostics

    You analyze the performance of client installations through client tracing logs. This section of the guide describeshow you set up these logs and analyze their results in the Performance and Diagnostic Tool.

    Generate Client Logs

    You generate the client logs by activating the trace log in the Epicor application.

    To generate a client trace log:

    1. Log onto a client installation of the Epicor application.

    2. Click on the Settings button; from the General Options list, select Tracing Options.The Tracing Options window displays.

    3. Select the Enable Trace Logging check box.

    4. Click OK.

    5. Now return to the Home screen and launch some programs whose performance you want to measure. Addnew records, modify records, run processes, and so on.The Trace Log records gathers performance data about each action you take within the Epicor application.

    6. Return to the Home window; click the Settings button and select Tracing Options.The Tracing Options window displays.

    7. Click the Write button.The tracing details are copied to the log.

    8. Copy the directory from the Current Log File field.

    9. Launch the Performance and Diagnostic Tool.

    10. Click on the Client Trace Analysis option on the Plug-Ins pane.

    The Client Trace Analysis interface displays.

    Epicor ERP | 100_70016

    Performance Tuning GuidePerformance and Diagnostic Tool

  • 11. For the Client Trace File Path, either paste the path you copied from the Current Log File field or click theBrowse button to find and select client log file.

    12. Optionally, select the Exclude System Calls check box to prevent system method calls from displaying withdiagnostic results.

    The Performance and Diagnostic Tool will then not display values from the GetRowsKeepIdleTime businessobject method. This method runs in the background while a current form is active, but it does not indicatehow long it takes other methods like Update, GetNew, and GetList to run. These method calls are generatedby user activity.

    However if you are testing how the client interacts with the server when no user activity is taking place, youwill want to review the calls from the GetRowsKeepIdleTime method. In this case, do not select this optionso you can displays these calls in the client results.

    13. Notice you can also change the Log File Date Format to select a date format used in a different localityor enter your own Custom Format.

    14. Click on the Generate Diagnostics button.

    You can now analyze the trace log data within the Results and Summary sheets.

    Analyze Client Logs

    Use the features on the Performance and Diagnostic Tool to review the client results recorded on the trace log.This topic explores the features available for analyzing the client logs.

    The Results grid displays the main details gathered from each trace packet, while the Summary grid displays theperformance times required for each business object to run. To analyze a client trace log:

    1. Click the Results tab.

    The Results grid displays.

    2. You can filter the log results based on values that populate each column. To do this, click on the Funnelicon that displays on each column header:

    17Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • 3. When you click on an icon, a drop-down list displays. Each drop-down list contains a series of default filteroptions followed by specific values from the trace log:

    All - The default filter, this option displays all the values for the column from the client tracing log.

    Custom - Select this option to launch the Enter filter criteria for Type window. Use this window todefine both an Operator and an Operand to filter the results. You can define as many filter conditionsas you need, creating And/Or relationships between each custom filter.

    Blank - Use this option to only display any empty rows available on the client trace log.

    Nonblanks - Select this option to display all the populated rows on the selected client trace log.

    Column Value - You can filter the results by selecting a specific value available in the column.

    4. To help organize the results, use the Group By feature on the grid. Click and drag a column header (forexample, Object Name) to the Drag a column header here to group by that column area. You can dragmultiple column headers to further structure the results as you need.

    Example If you group by using the Business Object column, the grid displays all the business objectsrecorded on the client trace in alphabetical order.

    5. You can review the following items on each business method call:

    Type

    Object Name

    Method Name

    Start Date

    End Date

    Execution Time

    File Name

    Server Execution Time

    Network Transport Time

    Appserver Thread

    6. Click on the Summary tab.Each business object and method displays on this grid.

    7. The Trace Date/Time and File Name fields display the selected trace log as well as the date and time itwas run.

    8. In the Report Monitor section, notice the GetRowsKeepIdleTime method. This business object runs inthe background while a current form is active.

    Tip If you shut off the System Monitor, the tracing log did not record time against theGetRowsKeepIdleTime method.

    9. The All grid displays the summaries of the method calls recorded on the tracing log.

    10. The Calls column indicates how many times the method sent a call to the server.

    Epicor ERP | 100_70018

    Performance Tuning GuidePerformance and Diagnostic Tool

  • 11. The execution times , in milliseconds, for each call are calculated and display in the accompanying columns.Additional information displays that identifies the object information:

    Average

    Longest

    Least

    Diagnostics ID

    Type

    Object Name

    Total

    12. Notice you can view the results in a Microsoft Excel file. To do this, click the Export to Excel button.

    13. Save the .xls file to directory you can access.You can now launch the .xls spreadsheet and review it in Microsoft Excel.

    14. To remove the generated results, click the Clear Results button.

    Fields and Sheets

    This topic documents the fields and sheets available for analyzing the client log files.

    Some fields on the interface have a context menu, which is indicated by a triangle in the upper right corner ofthe field. To open the context menu, right-click on the field.

    Client Trace Path

    Displays the location of your client trace logs. Browse to the file you wish to view within the Performance andDiagnostic Tool.

    Clear Results

    Click the Clear Results button to remove data from the Results and Summary sheets.

    You can also continue generating data from different trace logs without clearing the data. The Summary sheetthen contains results from each trace log generation.

    Custom Format

    If the date format you need is not available on the Log File Date Format drop-down list, enter the LanguageID for the language you use in this field. The date format linked to this language loads into the Performance andDiagnostic Tool.

    Exclude System Calls

    Select this check box to prevent system method calls from displaying with the diagnostic results. These systemmethod calls do not relate to the calls generated by application data.

    Export to Excel

    Click the Export to Excel button to export results to Microsoft Excel

    for further manipulation and analysis. The

    exported data is based on which grid is currently visible. For example, if the Results grid is visible, the data onthis grid is exported.

    19Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • Generate Diagnostics

    Click the Generate Diagnostics button to generate the log file results and display these results in the Summaryand Results grids.

    Log File Date Format

    Select the date format that matches the Language identifier you use when you generate client trace log files.If your format is not available from this drop-down list, enter the format you need within the Custom Formatfield.

    Results Sheet

    The Results sheet contains all calls made from this client for the duration of the current trace log. This grid supportsGroup By functionality, so you can organize the results by Object and/or Method name to view execution timesfor all method calls.

    Summary Sheet

    The Summary sheet summarizes the results for each BusinessObject.Method. This sheet displays the numberof calls and the Average/Least/Longest duration of these method calls. The duration is measured in milliseconds.You can also group the summary data by Diagnostic ID, Type, Object Name, and Total.

    Likewise you can sort the results by selecting the column that contains the most useful information to determinethe type of calls made most frequently by this client -- or which method calls consume the most time.

    Client Tracing Log Options

    The Tracing Options Form has a number of Dataset Options you can select to define what data is tracked by theclient tracing log. These check boxes all display in the Dataset Options section on the form.

    Include Server Trace

    Activate this option when you want to track the client's interaction with the server. This creates a node within trace packets () in the client tracing log. Use the database activity gathered in thissection to review how the client installation may be affecting the performance of the server.

    Track Changes Only

    Select this check box to cause the tracing log to only record dataset values and records which were modified.

    Write Call Context Dataset

    If you wish to review the performance of BPM methods and customizations, select the Write Call Context Datasetcheck box. The Call Context Dataset initializes when a user activates a program (UIApp) that either launches acustomized form or a BPM directive. As long as the program is active, method calls are sent to the Call ContextDataset.

    Write Full DataSet

    Select this check box to view the tables and columns that receive data from the called methods. Use this optionto find out what specific tables and columns are used in the dataset transactions with the server.

    Epicor ERP | 100_70020

    Performance Tuning GuidePerformance and Diagnostic Tool

  • Write Response Data

    When a method call has a other than void, selecting this check box causes the dataset returnedfrom the server to display on the tracing log. Numerous method calls occur where the data is passed down,modified, not written to the database, and then returned to the client. Selecting this check box places thesehidden calls on the trace log. Examples of these methods include Credit Checking, Part Verification and Pricing,and GetNewXXX (where XXX is the name of a record).

    Tip You typically select this option when you are developing a Service Connect workflow and need to seewhen a non-obvious value is set by a method call. The tracing log displays Before and After imagesof the dataset.

    Scenarios

    This topic contains examples of how you can measure client performance through different methods.

    Comparison of client performance between locations and/or client systems.

    You may have specific users reporting performance issues from their systems. By running client diagnostics frommultiple desktops/laptops that perform similar Epicor functions, you can determine differences in client executiontimes for the same method calls.

    This may provide you with some things to consider with your network, especially when comparing LAN usersagainst WAN users. However CPU differences will probably not be determined, because the tool is capturingexecution time of the method calls, not the time taken to open forms or render the data within these forms.

    Identification of business object performance issues.

    You may suspect a business object performs poorly under certain conditions. For example, you notice thattransaction entry slows down as the volume of data increases. By monitoring execution time of method callsduring entry, you may be able to measure the effect.

    Identification of performance over time.

    By analyzing the execution times of similar method calls throughout the day, you should be able to identify slowperiods. These slow periods may be related to network overload or server activity during those periods.

    Identification of Epicor usage from a client.

    You can analyze the log from a client to determine what activities that client engages against the Epicor application.This method also measures the frequency of calls to business object methods from that client.

    Identification of customization issues.

    Client customizations may cause unexpected or excessive calls to business object methods. For example, a poorcustomization could cause multiple calls to methods not made by the base application. Compare the trace logsthat track the same functions with and then without client customizations; this method may identify performanceissues.

    Send Client Logs to Epicor

    If you are working with an Epicor consultant or Epicor Technical Support to improve performance, follow thesesteps to send client trace logs and server logs to a support representative.

    1. During a period of peak activity on your network, launch the Epicor application on the client workstation.

    21Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • 2. Click on the Settings tile; from the General Options list, select Tracing Options....The Tracing Options window displays.

    3. Select the Enable Trace Logging check box.

    4. Now select the Track Changes Only check box. Only update, new, delete, and other method calls thatchange the database are included on the trace log.

    5. Select the Include Server Trace check box. This option causes calls from the client to the server to beincluded in the trace log.

    6. Click the Clear Log button.

    7. Now launch the program that has poor performance, following the interface movement pattern and dataentry pattern that demonstrates the issue.

    Tip Typically you should have the end user who reported the issue follow the pattern that causes thepoor performance. The data the user enters is also very important. The performance issue can betriggered by many factors -- the data the end user enters, the options the end user selects, thenavigation path the end user follows, and so on.

    8. Return to the Tracing Options Form.

    9. Click the Write button.

    10. Save the log file to a location on your C:\ drive.

    11. Now perform a second test during a period of slow activity on your network (after hours or on a weekend).Launch the Epicor ERP application from the server machine.

    The reason you launch the Epicor ERP application during this time and in this environment is to eliminateload condition and network traffic between the client and the application server. Even if you know thenetwork is not the cause of the poor performance, you must record these performance times so the Epicorconsultant or Epicor Technical Support can compare the performance under these different conditions.

    12. Repeat steps 2-9.

    13. Email the files to your Epicor consultant or Epicor Technical Support.

    Configuration Check

    The Performance and Diagnostic Tool contains a utility to check the configuration of the application server. Usethis Config Check option to see what issues and potential issues you may have with the application serverconfiguration.

    This feature checks a number of configuration items, including the CPU Speed and Configuration Checkstandard metrics. After the Performance and Diagnostic Tool analyzes the configuration, this feature displaysrecommended actions you can follow to fix various issues.

    Epicor ERP | 100_70022

    Performance Tuning GuidePerformance and Diagnostic Tool

  • Enter Configuration Check Settings

    You first need to set up the tool so it connects to the application server for the Epicor instance you wish to test.

    1. Launch the Performance and Diagnostic Tool.

    2. Click Settings > Options.

    The Options window appears.

    3. If you access the application server through an http link, select the Connect using Http check box. Youthen enter the link in the http:// field.

    4. By default you enter the net.tcp// connection.

    Tip Get the correct URL that points to the application server from the .sysconfig file that runs thisinstance of the Epicor application. You can find this value in configuration setting. In your Epicor application folder, the .sysconfig files are located in the client\configfolder.

    5. Use the Connection Method drop-down list to indicate how this application server checks for authenticationcertificates through Internet Information Services (IIS). When a user logs into the application, the selectedmethod checks whether the user can access the Epicor application. Available options:

    UsernameWindowsChannel -- Authenticate using an Epicor Username and Password. Windows checksfor existing Epicor user accounts to authenticate logins. When you select this option, you need to enterthe User ID and Password for the account. You can select this option for both smart client and EpicorWeb Access (EWA) installations.

    UsernameSSLChannel -- Use this option to authenticate using a Secure Sockets Layer (SSL) X509certificate. Use this method for application servers that handle installations where users reside in different

    23Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • domains. By using an SSL certificate, users from these different domains can log into the Epicor application.You can select this option for both smart client and Epicor Web Access (EWA) installations.

    Windows Authentication -- Select this option to authenticate using a Windows Username and Password.You can select this method for application servers that handle client installations where users access theapplication through the same domain. Any user who has a Windows Username and Password withinthis domain can successfully log into the Epicor application. You can only select this option on smartclient installations.

    Tip You can also find the Connection Method in the .sysconfig file. Locate the value to see the method used the application server.

    6. Enter the User Id and Password for the Epicor user account used to access the application server.

    7. Next enter the Client Directory for the folder that contains the client installation for the Epicor application.You can enter this path directly or click the Browse (...) button to find and select it.

    8. If you need to validate this connection through a certificate, select the Requires Certificate check box. Theaccompanying directory path field activates; enter the location for the certificate in this field.

    9. Click OK.

    Analyze Configuration (Standard Metric)

    The Config Check sheet contains tools for analyzing your application server configuration settings.

    1. Click on the Config Check option on the Plug-Ins pane.The Check Configuration interface displays.

    2. Click the Check Configuration button.

    The Performance and Diagnostic Tool evaluates the configuration settings and the system. These processesmay take some time to run. When complete, the Config Check Summary sheet displays a list of rules runagainst which the application server was checked.

    3. The Result column displays the generated evaluation of each rule against your application serverconfiguration. Available results include FAIL, WARNING, EXISTS, INFO, Not Available, and PASS.

    Epicor ERP | 100_70024

    Performance Tuning GuidePerformance and Diagnostic Tool

  • 4. Depending on the results, different instructional text displays in the Action Required column.

    INFO - Displays some key information you should review to make sure your system is set up correctly.

    EXISTS Notifies you that various items, like customizations and BPM directives, are active in the currentsystem. These items should be evaluated for performance.

    PASS The configuration met or surpassed these rule requirements. No further action is needed.

    WARNING Alerts you that potential performance issues may occur. Review these items to see if furtherchanges are needed.

    FAIL The application server configuration did not meet the rule requirements. The ActionRequiredcolumn displays a recommended action you can do.

    Not Available - Displays any item that was not available to test. You may need to correct some setupconfiguration items and re-run the configuration check.

    5. The Config Check Details sheet displays the various rule keys run to evaluate each configuration rule.Expand one of the rules to see the specific calls.

    6. Notice you can view the results in a Microsoft Excel file. To do this, click the Export to Excel button. Theinformation from all the Configuration Check sheets display in the exported spreadsheet.

    7. Save the .xls file to directory you can access.You can now launch the .xls spreadsheet and review it in Microsoft Excel.

    8. To remove the generated results, click the Clear Results button.

    Network Diagnostics

    You can use the Performance and Diagnostic Tool to verify the baseline network and server performance arerunning at optimal levels. Use this feature to evaluate the Network Test standard metric.

    To do this, run multiple tests to gauge the overall performance of your network, and compare these resultsagainst the network standard metric. Just like the Configuration Check, you need to update the fields on theSettings > Options window so the tool connects to the application server.

    Test Network Performance (Standard Metric)

    Run this test to verify that the baseline network and server performance are running at optimal levels.

    1. Click on the Network Diagnostics option on the Plug-Ins pane.The Network Diagnostics interface displays.

    2. Click the Run Test button three times.

    Three bar graphs appear on this sheet. You can click on each bar graph to view the specific details of eachnetwork test.

    25Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • Expected Results:

    Server Time (blue/lower bar) < 0.5 Seconds

    Network Time (green/upper bar) < 0.4 Seconds over a LAN

    Network Time (green/upper bar) < 7 Seconds without compression or < 1.5 seconds with compression overa WAN

    Server Diagnostics

    You analyze the performance of server installations through server tracing logs. This section of the guide describeshow you set up these logs and analyze the results.

    Write Permission

    Be sure the user account you use to access the server machine has write permission to the selected folder. Dothe following to verify you have access.

    1. Launch Internet Information Servers (IIS) Manager. Depending on your operating system, you launchthis tool in different ways:

    a. If you are on Windows SQL Server 2008 R2 or Windows 7, click Start. In the Search field, enter InternetInformation Services; when this program appears in the results, select it.

    b. If you are on Windows SQL Server 2012 or Windows 8, press the + F button to display theCharms bar; from the Apps screen, select Internet Information Services (IIS) Manager.

    Epicor ERP | 100_70026

    Performance Tuning GuidePerformance and Diagnostic Tool

  • The Internet Information Services (IIS) window displays.

    2. Expand the tree view to select the Application Pools pane.The Application Pools pane displays.

    3. Select the EpicorERP10 application pool.

    4. Now from the Actions pane, select the Advanced Settings... option.The Advanced Settings window displays.

    5. Locate the Identity setting and click the Browse (...) button.

    6. Select the Built-In account radio button.

    7. From the drop-down list, select the Application Pool Identity option.

    8. Click OK twice to close out of the Advanced Settings window.

    9. Close the Internet Information Services (IIS) Manager.

    Server Log Size and Details

    As you evaluate performance issues, you will most likely create multiple application server logs. How many logfiles you save, the details you include, and how large you let them grow depends on your preferences and testingrequirements.

    You should be able to save as many application server logs as you need. The number of server logs you createand the server details you wish to include depends on what aspect of the Epicor application you are evaluating.If you are evaluating system performance on a daily basis, you will most likely create at least one new applicationserver log each day. However if you are evaluating when peak server activity occurs, you will most likely recorda week or several weeks' worth of activity.

    By default each application server log file is limited to a size you specify. When one file reaches this size limit, theEpicor Administration Console creates a new log file. It uses the original file name as a prefix and then adds adate time stamp (the UTC date and concatenated time).

    27Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • To avoid running into disk space issues, you can control the number of log backups you want to maintain. Usethe logCount attribute within the server log to specify how many backups you want to keep. By using the defaultoption logCount="0", an unlimited number of backups is created.

    Each log also includes a series of server detail values. Depending on the purpose for creating the log, you maynot need to track all of these details. The .config file includes a setting that prevents these detailsfrom recording in the log.

    If you wish to change this default size, do the following:

    1. Launch Windows Explorer.

    2. Navigate to the web.config file; this file is located in the server folder in your Epicor installation. For example:C:\Epicor\ERP10\ERP10.00.000\Server

    3. Open this file in Notepad or a similar text editor.

    4. Locate the section.

    5. For the setting, locate the traceConfigurationFile attribute and review the name of the applicationserver configuration file you use.

    Example

    6. Save the file.After you save this file, the changes you entered for the traceConfigurationFile are used immediately by thesystem and do not require you restart IIS.

    7. Now open the .config file in Notepad.

    8. Locate the setting.

    Example

    9. Update the maxLogFileSize value to the log size file you need.

    You must enter a whole number followed by KB, MB, or GB (these values are not case-sensitive). For example,you can enter "16KB", "300mb", "3GB", and so on. You can also enter "none", "unlimited", or "-1" toindicate the server log should not have a maximum file size. The default size is 10MB; the minimum log filesize is 4KB.

    When you have an application server log run for a long period of time, the size of the log file can grow verylarge. Usually this will not be a problem, as the Performance and Diagnostic Tool can evaluate most logs500 MB in size or less. However if you want to view the log in Notepad or a similar text editor, you shouldkeep each log between 5 - 10 MB in size. Notepad can easily open log files this size, and they typicallycontain about the right amount of data for you to review.

    When the log file size reaches this maximum limit, the Epicor Administration Console creates a new log filewith the UTC date and time values placed on the end of the filename. Because of this, the active log filesall use the same file name.

    10. To prevent the Machine, Process, and Thread ID server details from appearing in the log, locate the setting. Change this setting to "False" and these items will not populate in thelog results.

    Epicor ERP | 100_70028

    Performance Tuning GuidePerformance and Diagnostic Tool

  • Tip These server details may be important if you are evaluating the performance of a server farm.For example, you can use the Machine values to review the performance of a specific server. Howeverif you are not working in a server farm environment, suppress these details.

    11. Save the .config file.

    12. Exit Notepad.

    Note that if you have multiple application servers, you need to change all the web.config files so thetraceConfigurationFile attribute in each file points to the correct .config log for each applicationserver. Likewise you need to adjust the settings for each .config file so you generate the results youwant.

    Generate Server Logs

    To generate an application server log, you activate logging in the Epicor Administration Console. You also definewhat specific information the log records.

    1. You launch the Epicor Administration Console from your server machine. Depending on your operatingsystem, you launch this tool in different ways:

    a. If you are on Windows SQL Server 2008 R2, click Start > All Programs > Epicor Software > EpicorAdministrative Tools > Epicor Administration Console.

    b. If you are on Windows SQL Server 2012, press the + F button to display the Charms bar;from the Apps screen, select Epicor Administration Console.

    The Epicor Administration Console displays.

    2. From the tree view, expand the Server Management node and Epicor Server node.

    3. Select the application server you need to monitor.

    4. Now from either the Action menu or the Actions pane, select Application Server Settings.

    The Application Server Settings window displays.

    29Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • 5. Select the Trace Log Enabled check box.

    6. Now use the Log File Location field to indicate where you want the application server log to generate.Either enter this path directly or click the Browse (...) button to find and select this directory path.

    7. Next define what Standard Logging information you want the application server log to record. If you onlyare tracking a specific database activity, use one of the more specific options. Server logs are easier to reviewif you only capture the types of database activity you require. Available options:

    a. Verbose Logging - The default option, select this check box when you want the log to record all calls,triggers, and exception messages sent to the application server.

    b. Trigger Hits - When a record is sent to the database to be added, updated, or deleted(Write/Update/Delete), the framework creates an event that SQL Server can intercept the call to performtable specific logic. After this event is processed, the record is sent to the database. Select this check boxto record these trigger events in the server log.

    c. BPM Logging - Select this check box to record Business Process Management (BPM) method calls. Eachtime user activity activates a BPM directive, the application server log records the business object methodthat was called and how long this call took to complete.

    d. BAQ Logging - Select this check box to record Business Activity Query (BAQ) database calls. Each timeuser activity activates a BAQ, the application server log records which query was called and how long ittook this BAQ to gather the data results.

    e. Detailed Exceptions - Indicates you want to record the complete details of each exception message.The full stack trace of the exception is included in the server log. You then see which items in your Epicorapplication were affected by the exception.

    Epicor ERP | 100_70030

    Performance Tuning GuidePerformance and Diagnostic Tool

  • f. ERP DB Hits - Activate this check box to track how the Epicor application interacts with the database.You can review each database hit as well as how long it took each hit to complete.

    g. Data Logging - This option will be available in a future version.

    8. Indicate which Advanced Logging information you want to include on the application server log. Theseoptions record calls from the overall system server, and may impact performance while active. Availableoptions:

    a. System DB Hits - Select this check box to record all the hits the database receives from SQL Server. Usethese values to determine the performance of SQL Server.

    b. System Table Methods - Activate this check box to track the method calls being placed against thesystem tables.

    9. When you finish making your selections, click Apply and then OK.

    10. The Server Manager dialog box displays, asking if you want these log settings to activate. If this is a goodtime to begin generating results in the application server log, click Yes.

    The application server is now active and recording the selected trace call options. The server log should run fora period of time, such as a single day or a couple days. When you are ready to review the results, you display theapplication server log in the Performance and Diagnostic Tool.

    Important After you gather the system information you need, be sure to return to the Epicor AdministrationConsole and de-activate your log setting options. This reduces unnecessary calls to the server and improvesperformance.

    Access Server Logs

    1. Click on the Server Diagnostics option on the Plug-Ins pane.

    2. Click the Add Files button and browse to the location of the server log file.

    3. Navigate to the directory location that contains the server log.

    Example C:\Epicor\Logs\server.log

    Tip You can also click the Down Arrow next to the Add Files button to select server log files frommultiple server locations. You may need to do this on load balanced systems where the applicationis located across multiple servers.

    31Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • 4. If you need, enter a value in the Millisecond Threshold field.Any calls that took longer than the millisecond value are designated as Exceeds Threshold in the serverlog results.

    5. Use the Epicor Version drop-down list to select the application version run with the selected server log(s).The default version is 10.0.1.

    6. Select the Ignore GetRowsKeepIdelTime check box to filter any system calls sent to the server.

    The Performance and Diagnostic Tool will not display values from the GetRowsKeepIdleTime businessobject method. This method runs in the background while a current form is active, but it does not indicatehow long it takes other methods like Update, GetNew, and GetList to run. These method calls are generatedby user activity.

    7. Now click the Generate Diagnostics button.

    The Performance and Diagnostic Tool analyzes the server log. You review this data on the Results, SummaryAnalysis, Running Processes, and Log Errors sheets.

    Analyze Server Logs

    Use the features on the Performance and Diagnostic Tool to review the results recorded on the selected serverlog. This topic explores the features available for analyzing the server logs.

    1. Click on the Results tab to review the server calls that were larger than the Millisecond Threshold youentered.

    The Results grid displays.

    2. You can filter the log results based on values that populate each column. To do this, click on the Funnelicon that displays on each column header:

    Epicor ERP | 100_70032

    Performance Tuning GuidePerformance and Diagnostic Tool

  • 3. When you click on an icon, a drop-down list displays. Each drop-down list contains a series of default filteroptions followed by specific values from the trace log:

    All - The default filter, this option displays all the values for the column from the client tracing log.

    Custom - Select this option to launch the Enter filter criteria for Type window. Use this window todefine both an Operator and an Operand to filter the results. You can define as many filter conditionsas you need, creating And/Or relationships between each custom filter.

    Blank - Use this option to only display any empty rows available on the client trace log.

    Nonblanks - Select this option to display all the populated rows on the selected client trace log.

    Column Value - You can filter the results by selecting a specific value available in the column.

    4. To help organize the results, use the Group By feature on the grid. Click and drag a column header (forexample, Object Name) to the Drag a column header here to group by that column area. You can dragmultiple column headers to further structure the results as you need.

    Example If you group by using the Workstation ID column, the grid displays all the workstationentries together in alphabetical order.

    5. You can review the following items on each business method call:

    UTC

    Type

    Object Name

    Method Name

    Execution Time

    ERPUser

    Client Workstation ID

    Exceeds MS Threshold - If this check box is selected, it indicates this server call took longer to executethan the Millisecond Threshold value you entered.

    MoreInformation

    TotalMilliseconds

    6. The Summary Analysis sheet calculates the total performance results for each business object method.Notice you can group the results by various columns on this grid.

    7. You can review several items on each business method call. Some key columns on this sheet include:

    Frequency - This value indicates how often the business object method sent a call to the server.

    % - Freq - The percentage this call was run compared to other method calls captured in this log.

    Total Execution Time

    Average Execution Time

    Longest

    Least

    % - Time - The percentage about how long this call was run compared to other method calls capturedin this log.

    8. Review the Errors and Messages sheet to analyze error messages.

    33Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • 9. You can review several items on each error. Columns on this sheet include:

    LogLine

    ClientID

    ObjectName

    MethodName

    StartDateTime

    ERPUser

    10. Notice you can view the results in a Microsoft Excel file. To do this, click the Export to Excel button.

    11. Save the .xls file to directory you can access.You can now launch the .xls spreadsheet and review it in Microsoft Excel. The information from all the ServerDiagnostic sheets display in the exported spreadsheet.

    12. To remove the generated results, click the Clear Results button.

    GetRowsKeepIdleTime Chart (Standard Metric)

    The GetRowsKeepIdleTime method can help you analyze how well the server interacts with Epicor clientinstallations. You can review this standard metric through the GetRowsKeepIdleTimeChart in the Performanceand Diagnostic Tool.

    The GetRowsKeepIdleTime method is used by the smart client. The client checks the application server to findout if the report or process has finished its run. If the run is finished, the data is sent back to the client as outputfor this method call. The client then uses this call to populate the results to the database or report. Because thismethod is a system check regularly sent to the server that typically does not return data, you can also use thismethod to measure network traffic that may impact performance.

    You use the Performance and Diagnostic Tool to display the GetRowsKeepIdleTime chart that shows you theperformance time of each method call in the server log. You can then pinpoint specific times of the day whenthere was increased server activity that affected performance.

    To evaluate performance for GetRowsKeepIdleTime method calls:

    1. You first need to indicate you want to generate the GetRowsKeepIdleTime Chart. Within the Performanceand Diagnostic Tool, click Settings > Options.

    The Options window displays.

    2. Click on the Server Diagnostics tab.

    Epicor ERP | 100_70034

    Performance Tuning GuidePerformance and Diagnostic Tool

  • 3. Select the Should Generate Chart check box.

    4. Now indicate the Time Interval to Chart (minutes) option. This value defines the span of time you wantto evaluate at each point in the GetRowsKeepIdleTime Chart. The default value is one minute.

    5. Click OK.You return to the main window of the Performance and Diagnostic Tool.

    6. As described previously, click the Add Files... button to find and select the server log you wish to review.

    7. Click the Generate Diagnostics button.

    8. Now click the GetRowsKeepIdleTime Chart tab.

    35Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • The chart displays using the time interval you selected. The left side of the grid indicates how long it tookto run the GetRowsKeepIdleTime call, while the bottom of the grid indicates the time of the day when thecall occurred.

    9. Optionally, you can click the Export to Excel button to save this graph as an .xslx spreadsheet.You can then use Microsoft Excel to refine this graph as you need. You and your Epicor consultant usethis spreadsheet to evaluate the overall performance of your system.

    Fields

    This topic documents the fields and sheets available for analyzing the server log files.

    Some fields on the interface have a context menu, which is indicated by a triangle in the upper right corner ofthe field. To open the context menu, right-click on the field.

    Add Files

    Click the Add Files button to select one or more server log files for analysis. Depending on what you are evaluating,multiple server.log files may have been generated. You can then analyze these files together within the Performanceand Diagnostic Tool.

    You can also click the Down Arrow next to the Add Files button to select server log files from multiple serverlocations. You may need to do this on load balanced systems where the application is located across multipleservers.

    Clear Results

    Click the Clear Results button to remove the log file information from the Results, Summary, Errors and Messages,and GetRowsKeepIdleTime Chart sheets.

    Epicor ERP | 100_70036

    Performance Tuning GuidePerformance and Diagnostic Tool

  • Clear Selected

    Click the Clear Selected button to remove the log file paths you have currently loaded into the Performance andDiagnostic Tool.

    Epicor Version

    Use this drop-down list to select the application version run with the selected server log(s). The default versionis 10.0.1.

    Errors and Messages

    Review the Errors and Messages sheet to analyze error messages that generated in the error log. You can reviewseveral details including the client workstation that originated the error, the business object which generated it,and so on.

    Export to Excel

    Click the Export to Excel button to export results to Microsoft Excel

    for further manipulation and analysis. The

    exported data is based on which grid is currently visible. For example, if the Results grid is visible, the data onthis grid is exported.

    Generate Diagnostics

    Click the Generate Diagnostics button to create the server log file data results.

    GetRowsKeepIdleTime Chart

    Use the GetRowsKeepIdleTime chart to display the performance time of each GetRowsKeepIdleTime method callin the server log. This method call is run by the System Monitor to check for server related activity like uploadingreports. You can then pinpoint specific times of the day when there was increased server activity which affectedperformance.

    Ignore GetRowsKeepIdleTime

    Click this check box to hide all GetRowsKeepIdleTime method call information from the server analysis results.This method call is run by the System Monitor to check for server related activity like uploading reports. Becausethis method is called frequently by every client on your system, select this check box to prevent this active callsfrom appearing in the log results.

    Millisecond Threshold

    Any BusinessObject.Method calls greater than the value entered in this field have their Exceeds Thresholdcheck boxes automatically selected. This value indicates these calls are over the threshold value (in milliseconds)you defined. Use this value to perform Sort By or Group By actions to review longer duration method calls.

    Results Sheet

    The Results sheet displays all calls received by the application server during the run of the server log. You can useGroup By functionality to group the results by Object and/or Method to see the execution times for all methodcalls.

    Summary Sheet

    The Summary sheet summarizes the results for each BusinessObject.Method, showing the number of calls andthe Total/Average/Least/Longest duration of those calls. These duration values are measured in milliseconds. You

    37Epicor ERP | 100_700

    Performance and Diagnostic ToolPerformance Tuning Guide

  • can sort the results by column to determine the types of calls made most frequently against the server, or whichcalls consume the most time.

    Scenarios

    This topic contains examples of how you can measure server performance through different methods.

    Identification of server performance compared to other servers.

    Use this method to identify performance differences for similar business object method calls on different servers.You do this by comparing the elapsed times for the method calls on one server against another server. Thesetime differences may be related to CPU, database, customizations, operating systems, hardware configurations,and other differences.

    Analysis of activity by workstation.

    If you group by on the Workstation column, you can identify the method calls made by specific workstations.If a user reports slow performance, you can identify what this user was doing at the time and whether the elapsedtimes for method calls run using expected elapsed times.

    Analysis of system performance over time.

    If you group by using the Object Name and Method Name columns, you can observe the performance ofspecific method calls throughout the day. You may be able to discover slow periods by observing overall differencesin execution time patterns for those methods.

    Analysis of most common activities and performance.

    If you sort by the Frequency column on the Summary sheet, you can view the most frequent method calls andtheir execution times. Sort by the Total Time column to see what activities consume the most time on the server.

    Analysis of server verses network elapsed time for methods.

    On the Results sheet, if you group by the WorkStation column, you can see the execution times of specificmethod calls on that workstation. You should also be able to identify the same calls from the Client Diagnosticsfor that workstation and compare the differences. For example, if you see an elapsed time of 800 millisecondsfor a server call and you see 1500 milliseconds for that same call on a client, you can conclude that about 700milliseconds was spent transferring data over your network. If you do not like this network performance, youcan analyze network traffic using a network analysis tool.

    Identification of customization issues.

    You can analyze the elapsed time it takes to call specific methods compared to other server installations. Thismay indicate issues with customizations, business process method (BPM) method/data directives, or C# codecustomizations.

    Epicor ERP | 100_70038

    Performance Tuning GuidePerformance and Diagnostic Tool

  • Additional Diagnostic Resources

    Additional resources are available that can help you locate deadlocks and locking and blocking. These tools areavailable through the Performance and Diagnostic Tool.

    Locking and Blocking occurs when two or more database connections try to access the same piece of datasimultaneously. A piece of data is locked when a connection needs exclusive access to it. A Deadlock occurswhen two users or sessions have locks on separate business objects, and each business object process tries toestablish a lock on the business object in use by the other user/session.

    Use the Performance and Diagnostic Tool to download diagnostic testing resources that can check for thesepotential issues. These resources are SQL procedures and templates for the SQL Profiler. You use the SQL Profilerwithin Microsoft

    SQL Server Management Studio

    , and these templates display data specific for locking/blocking

    and deadlocks.

    To do this, click Options > Download Resources. You then download the following .zip files and set them upto work with SQL Server Management Studio.

    SQLProfilerTemplates.zip -- Download this file to evaluate locking and blocking on your system.

    DeadlockAnalysis.zip -- Download this file to evaluate deadlocks.

    Locking and Blocking

    You can use the sp_lock3.sql stored procedure to determine if a system is experiencing excessive data lockingand blocking.

    Locking and blocking occurs when two or more database connections try to access the same piece of datasimultaneously. A piece of data is locked when a connection needs exclusive access to it. SQL Server prevents,or locks, this piece of data so it cannot be updated by other connections. This data is then blocked when anotherconnection attempts to access this data. This data becomes available when the first connection releases it. Similarto deadlocks, you need to discover what connection(s) could not access the data (the victims) and what connectionblocked the data (the culprit).

    Excessive locking and blocking slows down database performance. By running the sp_lock3.sql stored procedure,you can determine whether excessive locks and blocks are occurring on your database.

    Set up the sp_lock3.sql File

    You download the sp_lock3.sql file through the Performance and Diagnostic Tool.

    1. Launch the Performance and Diagnostic Tool. Depending on your operating system, you launch this tool indifferent ways:

    a. If you are on Windows SQL Server 2008 R2 or Windows 7, click Start > All Programs > Epicor Software> Epicor Administrative Tools > Performance and Diagnostic Tool.

    b. If you are on Windows SQL Server 2012 or Windows 8, press the + F button to display theCharms bar; from the Apps screen, select Performance and Diagnostic Tool.

    The Performance and Diagnostic Tool displays.

    2. Click Options > Download Resources.

    39Epicor ERP | 100_700

    Additional Diagnostic ResourcesPerformance Tuning Guide

  • The Download Resources window displays.

    3. Select the check box next to the SQLProfilerTemplates.zip item.

    4. Click OK.The SQLProfilerTemplates.zip file is downloaded to your computer.

    5. Unzip the SQLProfilerTemplates.zip file in a file location you need.

    Configure the sp_lock3.sql File

    You use SQL Server Management Studio to configure this stored procedure file.

    1. Click Start > All Programs > Microsoft SQL Serve