260 likes | 362 Views
Measurement and Analysis of LDAP Performance Xin Wang( xwang@ctr.columbia.edu ), Henning Schulzrinne, Dilip Kandlur, Dinesh Verma. Outline. Background Experimental Setup Test Methodology Result Analysis Related Work Conclusion. Background. What is LDAP?
E N D
Measurement and Analysis of LDAP Performance Xin Wang(xwang@ctr.columbia.edu), Henning Schulzrinne, Dilip Kandlur, Dinesh Verma
Outline • Background • Experimental Setup • Test Methodology • Result Analysis • Related Work • Conclusion
Background • What is LDAP? • A directory service is a simplified database, primarily for high volume read • LDAP: Lightweight Directory Access Protocols. • A client-server model, over TCP/IP • Tree structure: entry, attributes, values • Operations: add, delete, modify, compare, and search.
Background (cont’d.) • LDAP for SLS Administration • Service level specification: type of service provided, traffic constraints, etc. • LDAP directory contains: SLS, policy rules, network provisioning information. • Decision entities download classification rules, service specifications, and poll service periodically. • Enforcement entities query rules from the decision entities and enforce them
Experimental Setup • Hardware: • Server: dual processor Ultra-2, 200 MHz CPUs, 256 MB main memory • Clients: Ultra1, 170 MHz CPU, 128 MB main memory • 10 Mb/s Ethernet • LDAP server: • OpenLDAP 1.2 • LDBM backend: A high performance disk-based database • Berkeley DB 2.4.14, dbcachesize: 10 MB cachesize: vary
Experimental Setup (cont’d) • LDAP Client
Test Methodology • Search for downloading policy rules • Search filter: interface address, policy object. • Default size: 10,000 entries, entry size 488 bytes • Search operation: • ldap_search, ldap_bind, ldap_search, ldap_unbind.
Performance Measures • Latencies: • Connect: ldap_open + ldap_bind • Processing: ldap_search + data transmitting • Response: ldap_open -> ldap_unbind • Server throughput
Performance Measures (cont’d) • Use latencies and throughput to evaluate: • Overall LDAP performance • Steps to improve system performance • How individual system components affect performance • System scalability and performance limits • Performance under update load
Components of LDAP Search Latency Client Server
Related Work • Mindcraft • Netscape Directory Server 3.0 (NSD3) Netscape Directory Server 1.0 (NSD1) Novell LDAP services (NDS) • 10,000 entry personnel DB • Pentium Pro 200 MHz, 512 MB RAM • All experiments are in memory • Throughput • NSD3: 183 requests/second • NSD1: 38.4 requests/second • NDS: 0.8 requests/second • CPU is found to be the bottleneck
Conclusion • General Results: • response latency 8 ms up to 105 requests/second • Maximum throughput 140 requests/second • 5 ms processing latency - 36% from backend, 64% from front end • Connect time dominates at high load, and limits the throughput • Disabling Nagle Algorithm reduces latency about 50 ms • Entry Caching: • for 10,000 entry directory caching all entries gives 40% improvement in processing time, 25% improvement in throughput
Conclusion (cont’d) • Scaling of Directory Size: • In memory operation, 10,000 -> 50,000: processing time increases 60%, throughput reduces 21%. • Out-of-memory, 50,000 ->100,000: processing time increases another 87%, and throughput reduces 23%. • Scaling of Entry Size (488 ->4880 bytes): • In-memory, mainly increase in front-end processing, i.e., time for ASN.1 encoding . Processing time increases 8 ms, 88% due to ASN.1 encoding, and throughput reduces 30%. • Out-of-memory, throughput reduces 70%, mainly due to increased data transfer time.
Conclusion (cont’d) • CPU: • During in-memory operation, dual processors improve performance by 40%. • Connection Re-use: • 60% performance gain when connection left open.