Before You Run OpenDJ in Production
This chapter covers covers what you need to consider before you run
OpenDJ in your production environment.
Java Environment
OpenDJ software consists of pure Java applications. OpenDJ servers
and clients therefore should run on any system with full Java support.
OpenDJ is tested on a variety of operating systems, including Solaris
SPARC and x86, various Linux distributions, Microsoft Windows,
and Apple Mac OS X.
OpenDJ software requires Java 6, specifically at least the Java
Standard Edition 6.0 (Sun version 1.6.0_10) runtime environment. For
best server performance, use at least version 1.6.0_22, which includes a
major security fix for TLS as well.
System, Network, & Storage Hardware
Thanks to the underlying Java platform, OpenDJ software runs well
on a variety of processor architectures. Many directory service
deployments meet their service-level agreements without the very latest
or very fastest hardware.
For a server evaluation installation, you need 256 MB memory (32-bit)
or 1 GB memory (64-bit) available to OpenDJ, with 100 MB free disk space for
the software and a small set of sample data. For installation in production,
read the rest of this section. You need at least 2 GB memory for OpenDJ and
4 times the disk space needed to house your initial production data.
OpenDJ directory servers almost always benefit from having enough
system memory to cache all directory database files used. The reason
is that reading from and writing to memory is typically must faster
than reading from and writing to disk storage. For small data sets,
you might not need extra memory. For large directories with millions of
user directory entries, the system might not have enough slots to house
sufficient memory to cache everything. To improve performance in such
cases, one approach is to add solid state drives as an intermediate
cache between memory and disk storage.
Processor architectures that provide fast single thread execution
tend to help OpenDJ software deliver the lowest response times. For top end
performance in terms both of sub-millisecond response times and also
of throughput ranging from tens of thousands to hundreds of thousands
of operations per second, the latest x86 architecture chips tend to
perform better than others tested. Chip multi-threading (CMT) processors
can do very well on directory servers providing pure search throughput,
even though response times can be higher. Yet, CMT processors can be slow
to absorb hundreds or thousands of write operations per second. Their
slower threads get blocked waiting on resources, and thus are not optimal
for topologies with high write throughput requirements.
On systems with fast processors and enough memory to cache directory
data completely, the network can become a bottleneck. Even if a single
1 Gbit Ethernet interface offers plenty of bandwidth to handle your
average traffic load, it can be too small for peak traffic loads.
Furthermore, you might choose to use separate interfaces for
administrative traffic and application traffic. To estimate what network
hardware you need, calculate the size of the data you return to
applications during peak load. For example, if you expect to have a
peak load of 100,000 searches per second, each returning a full 8 KB
entry, you need a network that can handle 800 MB/sec (3.2 Gbit/sec)
throughput, not counting any other operations such as writes that
result in replication traffic.
The storage hardware you choose must allow you to house not only
directory data including historical data for replication, but also
logs. If you choose to retain access logs for auditing purposes on a
heavily used directory, dedicate storage for the log archives as well.
Furthermore, your storage must also keep pace with the write
throughput. Write throughput can arise from modify, modify DN, add,
and delete operations, but it can also result from bind operations.
Such is the case when the last successful bind is recorded, and when
account lockout is configured, for example. In a replicated topology,
not only does a directory service write entries to disk when they are
changed, but a directory service also writes changelog data and
historical information in order to resolve potential replication
conflicts. In the same way that you consider your network throughput
needs based on peak loads, also evaluate your peak storage throughput
needs in order to select the storage hardware.
OpenDJ servers do not currently support network file systems such
as NFS for database storage. Provide sufficient disk space on local storage
such as internal disk or an attached disk array.