HP Red Hat Directory White Paper

Red Hat Directory Server 7.1 for HP-UX 11i v2 Integrity system Performance Tuning
and Sizing Guidelines
May 23 , 2008
U.S.A.
©2006-2008 Hewlett-Packard Development Company,
L.P.
Always On
Anything
Anytime
Anywhere
Red Hat Directory Server 7.1 Performance Tuning and Sizning Guidelines

History

Version Date Scope / Changes
1.0 8/21/2006
1.1 9/1/2006
1.2 9/7/2006
1.3 5/23/2008
Initial draft
First Review Update
Second Review Update
New data points Update
i
History...........................................................................................................................................................................i
Overview.......................................................................................................................................................................1
Product Overview....................................................................................................................................................1
Purpose of This Document......................................................................................................................................1
Sizing and Tuning Overview...................................................................................................................................1
Hardware...............................................................................................................................................................1
Operating System and System Parameter Tuning .................................................................................................2
Directory Sever Tuning Overview.........................................................................................................................2
Sizing and Tuning Recommendations........................................................................................................................3
Sizing Guidelines......................................................................................................................................................3
Systems..................................................................................................................................................................3
CPUs......................................................................................................................................................................3
Memory .................................................................................................................................................................4
Tuning Recommendations......................................................................................................................................5
nsslapd-threadnumber............................................................................................................................................5
nsslapd-dbcachesize...............................................................................................................................................6
nsslapd-cachememsize and nsslapd-cachesize ......................................................................................................8
nsslapd-cache-autosize ........................................................................................................................................10
Logging ...............................................................................................................................................................11
Performance Measurements.....................................................................................................................................11
Purpose...................................................................................................................................................................11
Test Result..............................................................................................................................................................11
Data collection 1: (Different Number of CPUs)..................................................................................................11
Data Collection 2: (Different nsslapd-threadnumber).........................................................................................12
Data Collection 3: (Different nsslapd-dbcachesize) ............................................................................................12
Data collection 4: (Different entrycache setting).................................................................................................13
Data Collection 5: (Access Log On vs. Access Log Off)....................................................................................14
Data Collection 6: (SSL Connection Enabled vs. SSL Connection Disabled) ....................................................14
Additional Tuning Reference....................................................................................................................................15
Appendix A: RHDS 7.1 Performance Test Details.................................................................................................15
Test Environment..................................................................................................................................................15
Operating System ................................................................................................................................................15
System Parameter Tuning....................................................................................................................................15
General Directory Server Configuration..............................................................................................................15
Selected Benchmark............................................................................................................................................16
Test Machines......................................................................................................................................................16
Private LAN Configuration .................................................................................................................................16
Performance Monitoring Tools............................................................................................................................16
vsar(Visual System Activity Reporter)................................................................................................................16
Caliper .................................................................................................................................................................17
Performance Data Creation..................................................................................................................................17
Test Data Generation...........................................................................................................................................17
Search Script Generation.....................................................................................................................................17
Appendix B: my_scriptgen.c.....................................................................................................................................17
Appendix C: Test Environment for new data points..............................................................................................18
Operating System ................................................................................................................................................18
Test Machines......................................................................................................................................................18
ii
Red Hat Directory Server 7.1 Performance Tuning and Sizing Guidelines

Overview

Product Overview

Red Hat Directory Server for HP-UX provides an industry standard centralized directory service to build your intranet or extranet on. Your directory-enabled applications use the directory service as a common, network­accessible location for storing shared data such as user and group identification, server identification, and access control information. In addition, you can extend the Red Hat Directory Server to support your entire enterprise with a global directory service that provides you with centralized management of all your enterprise's resource information.

Purpose of This Document

This document provides basic sizing and performance tuning guidelines for Red Hat Directory Sever (RHDS) version 7.1 for HP-UX 11i v2 on Integrity Server. It also provides the performance test results of RHDS 7.1 on HP­UX Integrity (IA64) Servers. The RHDS 7.1 is a 64-bit Directory Server.
The data provided here is intended to help system and network administrators to effectively size and tune different directory server configurations. Some major topics such as class of machines, amount of memory, and number of CPUs are covered. This document also covers how to tune some of the key performance related attributes for RHDS.
Please keep in mind that data presented in this document are measured under controlled environment. Testing for these guidelines were performed on dedicated HP-UX servers connected by private LAN. No other system activities were running during the performance testing. For RHDS version 7.1 performance test details, see Appendix A.

Sizing and Tuning Overview

Hardware

The following sizing guidelines should be used when selecting a system to use as a Red Hat Directory Server. They are discussed in more detail in Section “Sizing Guidelines
Any HP IA64 architecture with an Intel
be used for Red Hat Directory Server.
When correctly tuned, the eventual performance bottleneck will be CPU.
At least 256 MB of memory is required. However, you should plan from 512 MB to 4 GB or more of
RAM for best performance on large directories. As an example, if your directory contains 250K entries where the average entry size in entrycache is 3860 bytes, and if your directory server only needs to support exact search requests on the “cn” attribute, you might want to have at least 2.5 GB of memory available for the directory server to cache all the information needed.
Approximately 251 MB of disk space for a minimal installation (without loading any user data) is required.
For production systems, you should plan at least 2 GB to support the product binaries, databases, and log files (log files require 1 GB disk space by default). As an example, for a directory instance with 250K entries and average entry size on disk is 700 bytes, it requires the minimum of 0.9 GB disk space for database, default index files and minimum logging (access log is turned off).
® Itanium 2 processor or Intel® Itanium 2 dual core processor can
”.
Page 1
Red Hat Directory Server 7.1 Performance Tuning and Sizing Guidelines

Operating System and System Parameter Tuning

PHKL_34032 and PHCO_33675 are installed. These two patches will improve the HP-UX 11i v2 pthread
performance in general.
Two pthread tuning environment variables PERF_ENABLE and PTHREAD_FORCE_SCOPE_SYSTEM
are set to 1 to force the 1x1 thread model. The default thread models are different on different HP-UX releases. At the first release of HP-UX 11i v2, it is defaulted to MxN threads; starting from HP-UX 11i v2 September 2004 release and on, it is defaulted to bound threads in an MxN environment. It has been observed that the 1x1 threads performs better than MxN threads does in general. Our testing shows 1x1 threads gave best performance number for RHDS 7.1.
Set malloc tuning environment variable _M_CACHE_OPTS=1024:32:0 to turn the thread local cache on.
NOTE: You need to have enough memory to use this tuning variable; otherwise, the server may exit when it runs out of memory. 10% of the nsslapd-cachememsize may be a good guess for the additional memory requirement, but test it before using it. By default, the thread local cache is disabled.
Set maxfiles_lim, the hard file limit per process, to at least 4096.
Set max_thread_proc, the maximum number of threads per process, to 256.
Set maxdsize_64bit, the maximum of data-segment s ize for a 64-bit process, to at least the size of
nsslapd-cachememsize * 2.3 + nsslapd-dbcachesize. More information about nsslapd-cachememsize and nsslapd-dbcachesize will be provided in Section “Tuning
Recommendations
”.

Directory Sever Tuning Overview

The following tuning recommendations apply to Red Hat Directory Server version 7.1 for optimal performance:
Tune the cache size big enough to fully utilize the cache. There are two caches available: database cache
and entry cache. Detailed information is provided in Section “Tuning Recommendations
Turn the access log off if you don’t need it. Access log contains information for all the operations. By
default, the access log is turned on.
Tune the number of operation threads down for directory servers who mainly serve search requests.
Although, fewer threads may gave you better search performance, it may also become the bottleneck when the directory sever also serves some time-consuming operations such as add or modify. For detailed information, please see Section “Tuning Recommendations
”.
Utilize indexes to speed up searches. However RHDS provides an attribute, nsslapd-
idlistscanlimit, to limit the number of IDs that are scanned per index key during a search
operation. When the size of an individual ID list reaches this limit, the server will behave as if no index was available for that type of search. For more information about nsslapd-idlistscanlimit, please refer to “Red Hat Directory Server 7.1 Adm i ni st rat or’s Gui de
Disable unneeded plugins such as referential integrity,
” *
UID uniqueness or schema checking, etc.
Other factors, such as if SSL, replication, or referral is configured, may also affect the performance. Complex or many ACIs (directory server access control instructions) will also affect performance. SSL performance data is also covered in Data Collection 6.
*
Hewlett-Packard Company, “Red Hat Directory Server Version7.1 Administrator’s Guide”,
http://docs.hp.com/en/7118/ds71admin.pdf.
Page 2
Red Hat Directory Server 7.1 Performance Tuning and Sizing Guidelines

Sizing and Tuning Recommendations

Sizing Guidelines

Systems

HP Integrity (IA64) Servers
Any HP IA64 architecture with an Intel® Itanium2 Processor or an Intel® Itanium2 dual core Processor and supports HP-UX 11i v2 (Preferably HP-UX 11i v2 September 2004 or later release) can be utilized as an Red Hat Directory Server.
For producing this report, a Montecito-based HP Integrity Server is used. A partition of 2 cells with 4 dual-core processors each is configured within the superdome server SD64B. Within the partition, only one cell is turned on. The exact search throughput with this configuration (8 CPUs @ 1.6GHz, 64GB memory, and one 18 GB disk) can reach 6241.56 operations per second without tuning any Directory Server parameters. All the data generated in this document is based on this specific hardware configuration.

CPUs

The Red Hat Directory Server for HP-UX will utilize multiple processors. When number of processors increases, the performance gets better (see graph below). Under the performance test environment, changing the test machine configuration from 1 processor core (2 CPUs) to 4 processor cores (8 CPUs) can increase the performance throughput about 155%. When configured correctly, the Red Hat Directory Server will generally reach the CPU limit before it reaches other constrains such as disk or networking I/O. For performance measurement based on different number of CPUs, please see Table 1
Page 3
14000
12000
10000
operation s / sec
Red Hat Directory Server 7.1 Performance Tuning and Sizing Guidelines
Performance with different # of CPUs
8000
6 threads 8 threads
6000
4000
2000
0
2468
number of cpus
Figure 1: Performance difference based on different number of CPUs. Measured on Montecito-based test configuration @1.6GHz /CPUs.

Memory

The Red Hat Directory Server for HP-UX caches entry and indexing information in memory. It requires at least 256 MB of memory for a small deployment, but for large deployments, 512MB to 4GB or more RAM is needed for best performance. To estimate how much RAM is needed for Directory Server on a HP-UX Integrity system, please use the following formula:
Total_RHDS_RAM = 1.2 * (base_RAM_need_for_slapd_process + caches)
Where
base_RAM_needed_for_slapd_process = 27 MB + nsslapd-threadnumber * 0.25MB
caches = dbcache + SUM(all entry caches)* 2.3 + import_cache
Explanation:
1.2: 20% additional RAM needed for slapd process to handle incoming LDAP operations. 20% is an
estimated number, and it should be sufficient. However, testing is needed to ensure that it is enough before going into production.
27MB: is the size of the slapd process.
nsslapd-threadnumber *0.25 MB: each thread needs about 0.25 MB of memory.
dbcache: specified as nsslapd-dbcachesize.
All entry caches: specified as nsslapd-cachememsize. The 2.3 factor only needs to apply to the
nsslapd-cachememsize of the databases you are doing the work with.
Page 4
Loading...
+ 15 hidden pages