TechReady5 concluded on Friday and I'm finally returning to work after several customer sessions that immediately followed and one question was shared between the two - what do you recommend or what are you using to monitor performance and how do you determine load and stress when architecting a SharePoint Products and Technologies infrastructure? The answer is, there are a variety of tools to stress test your Microsoft SharePoint Products and Technologies deployment; let's cover some them:
SPSiteBuilder was originally a component of the SharePoint Utility Suite. As many of you know there are no future plans to redevelop this application set and SPSiteBuilder packaged with the SharePoint Utility Suite won't work with Microsoft Office SharePoint Server 2007/Windows SharePoint Services 3.0. The good news is that making the application compatible with Microsoft Office SharePoint Server 2007/Windows SharePoint Services 3.0 does not require a great deal of effort or a large investment of time.
Let's step through fixing the code to support Microsoft Office SharePoint Server 2007/Windows SharePoint Services 3.0:
First locate the line:
globalAdmin = new SPGlobalAdmin();
virtualServer = globalAdmin.OpenVirtualServer(uri);
SPGlobalAdmin is maintained for backward comparability; replace the globalAdmin variable with Farm and the SPGlobalAdmin() method with new SPFarm().
Farm = new SPFarm();
Now we need to replace the OpenVirtualServer() method since it is obsolete and use the Lookup() method of the WebApplication object.
WebApp = WebApplication.Lookup(uri);
Now locate the line:
This enumeration member is obsolete in Windows SharePoint Services 3.0 because it is no longer necessary to tell Windows SharePoint Services which URL paths should not be handled by Windows SharePoint Services. So we should replace it with the WebApp variable we specified earlier.
Finally to complete the retrofit we need to replace all instances of globalAdmin with Farm and all instances of virtualServer with WebApp and ensure we are referencing Microsoft.SharePoint.dll from a Windows SharePoint Services 3.0 build and recompile.
MOSSDW.EXE is a performance testing tool that provides data population/stress testing capabilities for Microsoft Office SharePoint Server 2007. If your plans include only data population, consider retrofitting SPSiteBuilder to support Microsoft Office SharePoint Server 2007/Windows SharePoint Services 3.0 as described above.
WSSDW.EXE is a performance testing tool that populates data for testing deployments of Windows SharePoint Services 3.0 (see also SPSiteBuilder and MOSSDW.EXE).
Excel Services Ocracoke Performance Testing Sample Scripts are performance testing scripts used in conjunction with MOSSDW.EXE that provide data population/stress testing capabilities for Excel Services.
The IIS 6.0 Resource Kit Tools can help you administer, secure, and manage IIS; using the Web Capacity Analysis Tool Version 5.2 you can stress test your application.
The IIS Diagnostic Toolkit is a compiled set of tools aimed at reducing the overall time to resolve problems with Internet Information Services (IIS) products. Use Debug Diagnostics 1.0 to run diagnostic tests for web servers hosting SharePoint Products and Technologies.
The Web Application Stress Tool is designed to realistically simulate multiple browsers requesting pages from a web site. You can use this tool to gather performance and stability information about your web application. This tool simulates a large number of requests with a relatively small number of client machines.
The I/O system is important to the performance of SQL Server. When configuring a new server for SQL Server or when adding or modifying the disk configuration of an existing system, it is good practice to determine the capacity of the I/O subsystem prior to deploying SQL Server. SQLIO.EXE can be used to determine the I/O capacity of a given configuration. An example of what we may see on a typical day during peak usage on a x64 A/P cluster hosting 100+ databases and supports 8 unique server farms, each with a local Shared Service Provider is:
using system counter for latency timings, 3579545 counts per second
parameter file used: param.txt
file c:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
2 threads writing for 360 secs to file c:\testfile.dat
using 8KB sequential IOs
enabling multiple I/Os per thread with 8 outstanding
using specified size: 100 MB for file: c:\testfile.dat
SQLIOsim simulates the I/O patterns of Microsoft SQL Server 2005, of SQL Server 2000, and of SQL Server 7.0. The I/O patterns of these versions of SQL Server resemble one another. You can use SQLIOsim to simulate read, write, checkpoint, backup, sort, and read-ahead activities for Microsoft SQL Server 2005 (see also SQLIO.EXE Disk Subsystem Benchmark Tool).
This is a standard component of the Windows operating system. You can use it to monitor performance objects and counters and instances of various hardware and software components.
Joel Oleson has a good list of counters for measuring Web front-end and backend performance - http://blogs.msdn.com/joelo/archive/2007/01/16/good-list-of-performance-counters.aspx.
NOTE At minimum consider monitoring PhysicalDisk\Disk Transfers per second or LogicalDisk\Disk Transfers per second measuring the amount of IO reads and writes per second to the database drives (see illustration).
You can install MOM agents on individual servers that collect data and send it a centralized MOM server. The data is stored in the MOM database, which can be a dedicated SQL Server or the Microsoft SQL Server 2000 Desktop Engine (MSDE) version of Microsoft SQL Server. MOM is suitable for collecting large amounts of data over a long period of time. MOM packs to consider for a typical SharePoint Products and Technologies deployment include:
Microsoft Operations Manager Packs
Microsoft Windows SharePoint Services
Microsoft SharePoint Portal Server 2003
Microsoft SQL Server 2000 & 2005
Microsoft Internet Information Server 6
Microsoft Cluster Service
Microsoft Windows 2003 Server
Web Site Monitoring
Web Sites and Services MP
Management Pack Catalog - http://www.microsoft.com/technet/prodtechnol/mom/catalog/catalog.aspx?vs=2005.
You can use tools such as ACT to simulate clients and collect data during the duration of a test.
You use NetMon to monitor the network traffic. You can use it to capture packets sent between client and server computers. It provides valuable timing information as well as packet size, network utilization, addressing, and routing information and many other statistics that you can use to analyze system performance.
Identify slow and inefficient queries, deadlocks, timeouts, recompilations, errors, and exceptions for any database interactions. For example, one measure we implement is identifying queries exceeding two (2) seconds excluding search. Profiling can be used when reports of latency are received in conjunction with monitoring the web front-end components of the server farm.
This tool is also installed with SQL Server. You can use it to analyze the execution plans for SQL queries and stored procedures. This is mostly used in conjunction with the SQL Profiler.
Collects valuable information about the configuration of the computer running SQL Server, the operating system, and the information that is reported to the SQL Server error logs.
SharePoint Products and Technologies Performance and Capacity Planning Resources