Membership Directory Capacity and Performance Analysis Update

Incorporating SQL Server 7.0 and Xeon Architecture

August 1999

Microsoft Corporation

Glossary

Membership-specific Terms Meaning
User An individual user connected to a service.
Add record Adding a user to the Membership Directory.
Concurrent user User active on the system (a subset of total users calculated based on user profile).
Attributes Specific information associated with a file or an object.

Capacity and Performance Terms Meaning
Pentium II-equivalent MHz (P2EM) A unit of measure for processor usage. A computer with a 400-MHz Pentium II processor delivers 400 Pentium II-equivalent MHz, at 100 percent processor usage. A computer with two 400-MHz Pentium II processors delivers 800 Pentium II-equivalent MHz at 100 percent processor usage.
Pentium Pro-equivalent MHz (PPEM) A unit of measure for processor usage. On a 200-MHz Pentium Pro processor, 100 percent CPU utilization delivers 200 PPEMs. A computer with two 200-MHz Pentium Pro processors delivers 400 Pentium Pro-equivalent MHz at 100 percent processor usage.
Per transaction cost The amount of computer resources used by a single transaction, the primary factor being the processor usage of an individual transaction.
Transaction rate The number of transactions per second that a computer can accommodate at a given point in time.
Processor clock speed Speed rating of a computer's processor measured in megahertz.
Data point Testing term referring to a point at which a measurement is taken. This can be a point in time, a transaction, or a set load.
Context switching A Microsoft® Windows NT Performance Monitor counter that measures the quantity of dynamic switching occurrences per second, between running processes, conducted by a processor or a group of processors. This dynamic switching occurs in order to run several processes simultaneously. The running processes must share processor time in order to run all threads and processes simultaneously. Context switching results in a slight reduction in the activity of the processes involved, and is not user controlled.
Transaction Cost Analysis (TCA) TCA is a methodology developed at Microsoft for estimating system capacity requirements. It can be used to generate performance and scaling analysis of specific transactions. These analyses are used to assist customers with scaling recommendations to increase productivity within their networks and Internet services.

Introduction

This document is an update to the Microsoft Site Server 3.0 Membership Directory Capacity and Performance Analysis white paper first included in the Microsoft® Commercial Internet System (MCIS) Resource Kit version 1.1. The original document analyzed the capacity and performance of the Membership Directory using Microsoft® SQL Server™ 6.5 database architecture with Pentium Pro hardware architecture.

Recent changes in the design of both hardware and software have made it possible for computers to operate with more speed and efficiency. In this update, the capacity and performance of the combination of Pentium II Xeon hardware architecture and SQL Server 7.0 will be analyzed as it pertains to the Membership Directory. This document will not address all of the testing performed in the original analysis, but will provide data and analysis for some of the key transactions for the Membership Directory.

Pentium II-equivalent MHz (P2EM)

P2EM represents the processor usage percentage of a transaction or transactions, for a Pentium II processor with respect to the clock speed of the processor.

For example, a 400-MHz Pentium II processor used at 100 percent capacity would produce 400 Pentium II-equivalent MHz or 400 P2EM. A four-processor Pentium II 400-MHz computer with a transaction rate of 16 transactions per second would have the following result:

P2EM= processor clock speed * number of processors utilized by the computer / transaction rate.

P2EM = (400(MHz) * 4(processors))/16(transactions/sec)

P2EM = 1600/16

P2EM = 100 (P2EM units)

Note   Remember that the transaction rate is variable.

P2EM is important in conducting transaction cost analysis (TCA)3 in that it provides one of the key elements in the TCA formula. For additional information about Transaction Cost Analysis, refer to the Capacity Model for Internet Transactions white paper included in the MCIS Resource Kit, version 2.5.

Per Transaction Cost

The overall cost of a transaction includes any disk and memory usage minus system overhead. The per-transaction cost is calculated as shown in the following equation:

P2EM + %disk utilization + %memory usage - base system usage = per transaction cost

The per-transaction cost is the actual resource usage of an individual transaction, and is used to perform TCA.

Advances in Hardware Technology

New hardware technology has increased the rate of disk transactions. This has resulted in dramatic increases in throughput. The latest upgrades for disk controllers and hard drives have increased the disk read and write capacity to as many as 18,000 transactions per second in a properly-configured fiber channel system. The resulting I/O headroom has removed the bottleneck for the disk-intensive operations of the Membership Directory. Massive throughput on the SQL Server computer can now be obtained by adding more spindles and faster individual disks.

Fiber controllers are now running processes and containing more cached memory. This enables greater scheduling efficiency for read and write operations to the hard drive.

Xeon Processor

The Xeon processor improves on the Pentium II architecture. It enables programs to execute more efficiently and reliably by providing the following performance enhancements:

Xeon-capable motherboards utilize a 64 bit 100-MHz PCI bus. This enables greater data transfer through the processor than in previous testing with lower-end processors.

Advances in Software Technology

Software continues to improve the efficiency, reliability, and availability of the Membership Directory.

SQL Server 7.0

The following improvements, included in SQL Server 7.0, increase the functionality of the Membership Directory:

Microsoft Data Access Components (MDAC) 2.1

Microsoft® Data Access Components (MDAC) 2.1, which is included in SQL Server 7.0, includes the database connectivity pieces that allow the LDAP server to communicate with SQL Server. This code has been improved to scale linearly to multiple processors.

Important   Do not install the LDAP Service on the SQL Server computer unless you have also installed ADSI version 2.5. Otherwise, the Site Server LDAP Service cannot function correctly with MDAC 2.1, which installs with SQL Server 7.0. For more information, see Using Site Server with SQL Server 7.0, available in the MCIS Resource Kit version 2.5.

Windows NT Service Pack 4

Microsoft® Windows NT® Service Pack 4 improves scalability. It reduces ACL lookup context switching by increasing the multi-thread efficiency of the memory allocation device.

LDAP Processor Scaling

The test scenarios utilized two server computers with the following configurations.

Web Server Use Provides customer access to content. Security is provided by Membership Authentication or Windows NT Authentication.
  CPU 4 x 400-MHz Pentium II (Xeon chip)
Memory 2 GB of RAM
Disk 2 x 4.5-GB SCSI, Raid 0 (Internal)
Network 100 BaseT (switched)
Software Windows NT 4.0 Service Pack 4

LDAP Server Use Interfaces with database containing membership data and schema.
  CPU 1 and 4 x 400-MHz Pentium II (Xeon chip)
Memory 2 GB of RAM
Disk 4.5-GB SCSI, Raid 0 (Internal)
Network: 100 BaseT (switched)
Software Windows NT 4.0 Service Pack 4
SQL Server Use Contains Membership Directory contents in database objects. Provides physical drive space for Membership Directory schema and data.
  CPU 4 x 400-MHz Pentium II (Xeon chip)
Memory 2 GB of RAM
Disk SCSI System drive and SQL Server TempDB: 2 GB, Raid 0

SCSI SQL data device drive: 20 x 9.1-GB Fiber Channel, Raid 0

SCSI SQL transaction log drive: 2 GB, Raid 0

Network 100 BaseT (switched) (High-speed fiber-channel connection between SQL Server computers and drive arrays)
Software SQL Server 7.0 Service Pack 1 (For information about SQL Server 7.0 Service Pack 1, go to http://www.microsoft.com/sql)

Procedures

The testing procedures were conducted in the same manner as the original testing with the SQL Server 6.5/Pentium Pro architecture. The following is an overview of that test procedure.

Testing was conducted by utilizing the InetMonitor load generation tool, which is available with the MCIS Resource Kit. InetMonitor makes use of a command script that simulates the user profile of a common user and the type of transaction being tested. The tool then connects to the designated port of the LDAP server with the assigned user load and runs through the command script for each user. While InetMonitor simulates the user actions through the command script, the LDAP server recognizes the load as real connections.

While the load is being generated by InetMonitor, certain responses of the LDAP server computer and SQL Server computer are monitored with the Performance Monitor (PerfMon) tool that comes with Microsoft® Windows NT®. This tool provides objects and counters that can be selected and monitored by the graph lines and data boxes in the PerfMon user interface. The objects may also be logged to a file and appropriate data extrapolated, as needed. Both methods were used during this testing. The graph function was used to obtain the maximum transaction rate for each transaction with respect to the user load. The logging function was used to obtain data over an extended period of time under varying user loads.

A test pass was conducted for each transaction. The resulting data was parsed by exporting the log file from PerfMon to an Excel spreadsheet as a tab-delimited file. This file was divided into sections by user load, and each section was averaged. The averages are used in the comparison tables.

Figure 1

Transactions

The following are the transactions that were tested for the purposes of this document.

Tested Membership Directory Transactions

Transaction Description
Add Record Add a 20-attribute user to the Membership Directory
Base Object Search Search for a user by common name (cn)
Modify Add Attribute Add one attribute to an existing user record in the Membership Directory
Modify Replace Attribute Change the value of one attribute in an existing user record in the Membership Directory

User Profile

The User Profile identifies the actions of a typical user logging on to the system and performing typical transactions. The following profile captures typical Membership Directory transactions. The database contains 200,000 actual user records in a single partitioned Membership Directory. The Membership Directory was populated using the load generation tool, InetMonitor 3.0. The InetMonitor 3.0 load generation tool also generated the user load during the testing. This is the same user profile used for the SQL Server 6.5/Pentium Pro architecture testing.

Typical Membership Directory Transactions

Elements Value1 Description
Add record 3% Adds one user with 20 additional attributes to the Membership Directory.
Modify record 12% Retrieves, modifies, and replaces existing record.
Base search 75% Retrieves record, returning all attributes.
Operations per visit 10  
User life cycle 20 min. Average time user remains connected conducting various operations.

1. The term value, as used here, refers to the functional weight given to each transaction.

Scalability and Performance

Processor Calculations

The LDAP server is the primary component utilized for the Membership services. The first step in determining the processor utilization of the LDAP server is to determine the per-transaction rate for each of the defined transactions. Both architectures yield a different processor calculation for each transaction type.

The following tables are generated using Microsoft® Excel, based on the user profile previously described.

The following tables and graphs show the per-transaction load comparison between the two architectures in quad-processor and single-processor modes.

  4-Processor 200-MHz SQL Server 6.5

Intel Pentium Pro

4-Processor 400-MHz SQL Server 7.0

Intel Pentium II Xeon

Transaction Valid

Range

PPEM Valid

Range

P2EM
Base Object 1 - 180 2.6782 1 – 796 1.85
Modify Add 1 - 110 1.4841 1 – 673 1.57
Modify Replace 1 - 110 2.9435 1 – 269 1.44
Add 1 - 4 2 1 – 146 3.27

Chart 1: Processor Utilization Rate (4-Processor)

Chart 2:Maximum Rate (4-Processor)

  1-Processor 200-MHz SQL Server 6.5

Intel Pentium Pro

1-Processor 400-MHz SQL Server 7.0

Intel Pentium II Xeon

Transaction Valid

Range

PPEM Valid

Range

P2EM
Base Object 1 - 100 1.9903 1 - 602 2.40
Modify Add 1 - 75 1.5 1 - 477 2.52
Modify Replace 1 - 80 1.9686 1 - 437 2.72
Add 1 - 4 5.7469 1 - 250 2.43

Chart 3: Processor Utilization Rate (1-Processor)

Chart 4: Maximum Rate (1-Processor)

SQL Server Data

SQL Server performance relies heavily on data disk performance. The best way to measure this is to observe the disk read and disk write rates. Performance can be judged by how many disk transactions occur per second and what effect the transactions have on the CPU.

The following tables show the processor and physical disk usage for each transaction. The combined disk write and disk read rates determine the ability of SQL Server to process storage transactions received from the LDAP server. A single LDAP transaction instigates an average of six disk transactions. All transactions generate read and write events. Add transactions primarily initiate write events, but disk read events occur in a normal state during any SQL Server operation. A comparison between SQL Server 6.5 and SQL Server 7.0 is not shown in the tables because no verification script was conducted for SQL Server 7.0. However, the following tables show true processor usage at specific concurrent user levels. This information is useful in determining system scalability issues.

Add Transactions

Add

Transactions/Sec

CPU

% Processor

Disk

Writes/Sec

Disk

Reads/Sec

Clients
6 12 383 155 50
3 18 533 73 60
14 30 814 10 100
17 34 931 2 120
20 42 1071 2 160
21 46 975 12 200

Modify Transactions

Modify-Add

Modify-Add

Transactions/Sec

CPU

% Processor

Disk

Writes/Sec

Disk

Reads/Sec

Clients
70 6.3 1322 19 80
140 13 470 24 160
330 31 677 32 400
375 38 933 30 480
580 53 1220 31 680
673 62 1290 34 800

Modify-Replace

Modify-Replace

Transactions/Sec

CPU

% Processor

Disk

Writes/Sec

Disk

Reads/Sec

Clients
37 4 99 52 40
71 7 190 33 80
140 13 396 34 160
206 20 544 33 240
269 26 681 28 320

Search Transactions

Base-Search

Transactions/Sec

CPU

% Processor

Disk

Writes/Sec

Disk

Reads/Sec

Clients
486 18 10.3 354 160
598 21 11.7 422 200
715 23.6 22.7 500 240
788 24 35 570 280
796 33 53 624 320

As expected, the Add and Modify transactions make extensive use of disk writes, while the Search transactions primarily make use of disk reads. The optimum transaction rates, disk writes or disk reads/sec will increase linearly with the number of client requests, as will processor usage.

Summary of Scalability and Performance

Based on the data collected during testing, the following assertions can be made about scaling and performance for the Membership Directory:

Appendix A: LDAP Service Processor Scaling

Every user who accesses an LDAP server computer increases the hardware utilization on that server. The following table shows the maximum rate of the transactions on a server with one and four Pentium II 400-MHz Xeon processors. The same information is shown graphically in Chart 5.

Maximum Transaction Rates per Processor

Transaction 4 Processors 1 Processor
Base Object Search 796 602
Modify Add 673 477
Modify Replace 700 437
Add 20 Attribute User 376 249

Chart 5: Maximum Transaction Rates for Scalability

Information in this document, including URL and other Internet web site references, is subject to change without notice.  The entire risk of the use or the results of the use of this resource kit remains with the user.  This resource kit is not supported and is provided as is without warranty of any kind, either express or implied.  The example companies, organizations, products, people and events depicted herein are fictitious.  No association with any real company, organization, product, person or event is intended or should be inferred.  Complying with all applicable copyright laws is the responsibility of the user.  Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document.  Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 1999-2000 Microsoft Corporation.  All rights reserved.

Microsoft, Windows and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A. and/or other countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.