25

TF-LSD TIO performanse test setup

Embed Size (px)

Citation preview

Page 1: TF-LSD TIO performanse test setup
Page 2: TF-LSD TIO performanse test setup

LDAP TIO INDEX server performance test

General setup for the LDAP TIO Index-server

performance test

Henny Bekker @ SURFnet

Page 3: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 3

The LDAP-Index performance test..

• The setup of the test lab• What software is used in the test• The general setup for the performance test

–The benchmark setup–The dataset, objectClasses and attributes–What tokenization

• What is tested and measured–The filter setting–Latency and number of requests per second

Page 4: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 4

The setup of the test lab

• The TIO index client and server systems– One dedicated server running out of the box RedHat v7.1

• 400-MHz Intel Pentium II• 512 Mbyte RAM• 100 Mbps/Full-Duplex Ethernet interface• Maxtor 10-Gbyte IDE disk

– 4 dedicated client systems running RedHat v7.1• 266-MHz Intel Pentium II (or better)• 256 Mbyte RAM• 100 Mbps/Full-Duplex Ethernet interface• Maxtor 4-Gbyte IDE disk

– Consoles connected using a ‘starview’ console switch

• The network setup– A dedicated VLAN on a Cisco Catalyst 5000 switch– 100-Mbps Fast Ethernet Full-Duplex

Page 5: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 5

What software is used in the test

• LDAP/TIO index servers– LIMS V 1.01 (Catalogix)– Desire/LDAP-TIO index v1.0 (Desire/DAASI)

• MySQL v3.23.36

• OpenLDAP v1.2.10

• Apache v1.3.2

– IDDS v4.5• TIO converter software

– Tags v1.0– Ldif2tio & tiocollapse

• LDAP test software– Ldapgun v0.25– Ldapsearch v2.0.7-14

Page 6: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 6

The general setup for the test

• The benchmark setup– Plan the test (estimate load requirements)

• The index(es) must fit in main memory– Designate PC’s for server and clients– Verify network performance

• tcpblast and iperf– Execute verification test

• Using IDDS v4.5• Ldapgun and ldapsearch• Use designated dataset

– Loading TIOs into index servers– Run ldap clients for 10 minutes to ‘warm up’ the

index and system disk cache

Page 7: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 7

The general setup for the test (cont.)

• The dataset to be used– A test-set of approximately 450-K entries

• SURFnet ±170-K entries• DFN ±120-K entries• Needs ±150-K entries (NO, SE)

– Used tokenization • DNS: cn, o, ou, l, c, gn• RFC822: mail• Full: sn, objectclass

– Only objectClass=person entries• Using anonymous bind• LDAPv3 subtree searches without chasing of

referrals

Page 8: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 8

The general setup for the test (cont.)

• Exemplary search requests on the FL-DSA & CAB– The Dutch FL-DSA (1500K requests)

• 1300K baseObject search on objectClass• 60K onelevel search on objectClass• 20K baseObject search on cn• 10K onelevel search on ou• 8K onelevel search on cn• 5K onelevel search on o~• 4K onelevel search on o or ou • 4K subtree search on uid• 4K subtree search on cn• 3K subtree search on cn~ or sn~• 3K subtree search on ou• 3K subtree search on objectClass and cn• 2K subtree search on cn or sn or uid• 2K subtree search on sn• 72K + 60 other different searches

Page 9: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 9

The general setup for the test (cont.)

–The end user LDAP server (750K requests)• 640K baseObject search on objectClass• 53K onelevel search on objectClass• 20K onelevel search on o• 9K subtree search on cn or mail or sn• 3K subtree search on cn or mail or sn or

givenname• 2K subtree search on cn• 23K + 60 other different searches

–Very exotic filter settings for subtree searches• (|(cn=kluck)(sn=kluck)(uid=kluck)(ou=kluck))• (|(cn~=polak)(sn~=polak)(ou~=polak))• (|(mail=nie*)(|(cn=nie*)(|(sn=nie*)(givenname=nie*))))

Page 10: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 10

What is tested and measured

• Defining the LDAP search filters– From ‘simple’ to ‘extravagant’ (with lots of booleans).– Must be dealt with by both LDAP/TIO servers

• The filter settings:1. (cn=foo)2. (cn=*foo*)3. (&(cn=foo)(sn=bar)) 4. (&(cn=*foo*)(sn=*bar*))5. (|(cn=foo)(sn=bar))6. (|(cn=*foo*)(sn=*bar*))7. (&(!(cn=foo))(sn=bar))8. (&(!(cn=foo))(sn=*bar*))9. (&(!(cn=not_a_foo_name))(sn=*bar*))10. (&(cn=foo)(sn=*bar*)(mail=*foo*)(givenname=*bar*))

Page 11: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 11

What is tested and measured (cont.)

• Failed subtree searches– Lims:

• (&(!(cn~=*foo*))(sn~=*bar*))

• (&(!(cn=*foo*))(sn=*bar*)(mail=*bar*))

• (&(!(cn=*foo*))(&(|(cn=*bar*)(cn=*fiets*))(|(sn=*auto*)(sn=*trein*))))

• (|(cn~=foo)(sn~=bar)(ou~=bar))

– Desire:• (&(cn=*foo*)(|(sn=*bar*)(sn=*fiets*)))

• (&(|(sn=*foo*)(sn=*bar*))(cn=*fiets*))

• (&(!(cn=*foo*))(&(|(cn=*bar*)(cn=*fiets*))(|(sn=*auto*)(sn=*trein*))))

• (&(!(cn~=*foo*))(sn~=*bar*))

– No failures for IDDS

Page 12: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 12

What is tested and measured (cont.)

• Performance test results– Number of requests per second for all 10 filters

• One single client (test run)

• Four clients with multiple threads (max 128)– Range: 4, 8 16, 32, 64, 128, 256 and 512 sessions

– Latency tests

• Measured during test-run– Hits and misses

• Every query must give one or more ‘hits’ ?– Both implementations are indifferent to hits or misses

– Measuring load on the index server

• Using ‘vmstat’ running at 10 sec. Interval

Page 13: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 13

Desire LDAP/TIO-Index: Performance measurement

Page 14: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 14

Desire: CPU load 4 to 64 simultaneous sessions

Page 15: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 15

Lims LDAP/TIO Index: Performance measurement

Page 16: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 16

Lims: CPU load 4 to 512 simultaneous sessions

Page 17: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 17

IDDS: Performance measurement

Page 18: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 18

IDDS: CPU load 4 to 512 simultaneous sessions

Page 19: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 19

Lims: Heavy load performance measurement

Page 20: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 20

Desire: CPU load 4 to 1024 simultaneous sessions

Page 21: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 21

Latency tests

• Unloaded server with filter (&(cn=foo)(sn=bar))

–Desire: 1000 queries in 630 seconds

–Lims: 1000 queries in 8.95 seconds

–IDDS: 1000 queries in 8,92 seconds• Unloaded server with filter (&(cn=*foo*)(sn=*bar*))

–Desire: 1000 queries in 3500 seconds

–Lims: 1000 queries in 11,5 seconds

–IDDS: 1000 queries in 11,0 seconds

Page 22: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 22

Latency tests (cont.)

• Heavy loaded server with filter (&(cn=foo)(sn=bar))

–Desire: 1000 queries in 1976 seconds

–Lims: 1000 queries in 17 seconds

–IDDS: 1000 queries in 61 seconds• Heavy loaded server with filter (&(cn=*foo*)

(sn=*bar*))

–Desire: 1000 queries in >7200 seconds

–Lims: 1000 queries in 24 seconds

–IDDS: 1000 queries in 69 seconds

Page 23: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 23

Latency tests (cont.)

• System status index server

–In all cases enough free memory without swapping

–CPU for 100% occupied• 80% user-time; 20% system-time

–Lots of system interrupts and context-switches• 5000 interrupts per second

• 4000 context switches per second

–IDDS and Lims use threading–Desire does fork sub-processes

Page 24: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 24

Exchanging TIOs between Desire and Lims

• To be done …

Page 25: TF-LSD TIO performanse test setup

TF-LSD TIO-server performance test setup 25

Conclusion

• The study of exchanging TIOs between Desire and Lims need to be finalized.

• The Lims LDAP/TIO-Index server performs better the the Desire LDAP/TIO-Index server with a factor of 100

• The Lims LDAP/TIO-Index server performs as good as Innosoft IDDS v4.51

• Complex LDAP filters with boolean operators or filtertypes like ‘approx’ are not supported by the Lims and Desire LDAP/TIO-Index server