
My colleagues asked me to share what little I know about SLAMD, the distributed load engine used in testing LDAP and other web services. SLAMD is a Java based SUN open source project currently owned by Neil Wilson who’s excellent blog cn=Directory Manager is packed with information about directory services. SLAMD is very powerful and can be used to stress test a variety of web application including AM, SiteMinder, AD, POP, IMAP, and HTTP services. For the time being, it appears that Neil and the team’s current focus appears to be OpenDS - the all Java Open Source Directory Server. More on that later but for now, let’s do a simple deploy.
Server Setup
To get started with SLAMD download the latest version which is 2.0.0 Alpha 1 from the site (the Alpha’s been out for more than a year now). Earlier version of SLAMD required a separate LDAP server to store jobs and configuration data. The latest alpha now has an embedded Berkley DB and can be deployed as a WAR file or standalone with the Tomcat server. Installation is very straightforward. Simply download the main files and extract. You will notice the Full Distro contains everything – web container, backend db, SLAMD server, and clients.
If you are using the WAR file as I did, you’ll need to add the following entry to server.xml in your Tomcat server and restart it.
<!– SLAMD Context –>
<Context path=”/slamd” docBase=”slamd” debug=”0″>
</Context>
Once started you can access the page at:
http://localhost:8080/slamd
The main page is as shown below.
Client Setup
After editing slamd_client.conf you can kick off a few clients (start_client.sh) and see them in the server status page.
Prepping The Directory
Setting up a directory server for SLAMD may require adding a large set of test accounts which may not necessarily be in the same level of the DIT. If you have several levels of the LDAP tree and custom attributes for an organization, this may pose a problem for testing.

You will need create an LDIF accordingly. In this case, we’ve used MakeLDIF to create both the corp level branches and its sub level user accounts. MakeLDIF can be found in the tools directory or obtained from the SUN Directory Server SDK.
<INSERT MAKELDIF EXAMPLES>
Scheduling A Job
A quick glance at the “Schedule a Job” and you’ll get a taste for how powerful the tool is for testing.
<INSERT SCREENS - SHOW CONTEXT FOR JOB>
Closing Thoughts
Given that SLAMD stores bind credentials, it is wise to protect this page with an authentication scheme. You can even add the following lines to the Tomcat server.xml file:
<Realm className=”com.sun.slamd.realm.LDAPRealm”
ldapHost=”server.example.com”
ldapPort=”389″
bindDN=”"
bindPassword=”"
loginIDAttribute=”uid”
userBase=”ou=People,dc=example,dc=com”/>
You will also need to uncomment lines from webapps/slamd/WEB-INF/web.xml - they are specified in the file towards the end.
Conclusion
It’s ideal to create a job set which mimics the production environment with similar client behavior and load. All in all, SLAMD is a very powerful tool. It should be considered during any LDAP migration, patch release or simply for performance tuning and benchmarking for SLAs.
Directory Server LDAP SLAMD
0 responses so far ↓
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment