One of the common performance tuning techniques employed by system administrators is to multi-path the disk I/O of an application. In the case of AEM, you can host java.io.tmpdir, the Node Store and the Data Store in three separate locations.

Java Temporary Folder

This is used heavily whenever an asset is uploaded to AEM. This can be controlled in the startup script with an argument such as this (Windows example):

-Djava.io.tmpdir=E:\JAVA_TEMP\author

AEM Data Store

This one requires more work.

1) Unpack the AEM jar file with the following command (assume that this is on the D: drive):

java -jar aem-6.0.0.20140515-generic.jar -unpack

2) Create a folder named “install” under /crx-quickstart

3) Copy the following files to it, as well as any service pack JARs (such as Service Pack 1). Ensure that you edit these so that it makes sense for your particular environment. More information on these files are available here.

org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.cfg

customBlobStore=true

org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.cfg (Windows example - the Data Store is being hosted on the F: drive, which is a large RAID array)

minRecordLength=4096

path=F:\\BLOBStore

cacheSizeInMB=128

4) Start AEM 6 for the first time

Note: You might see the following WARNings in error.log due to this Apache Sling issue (it can be ignored and is fixed in later releases):

*WARN* [pool-5-thread-2] org.apache.sling.jcr.resource.internal.OakResourceListener processOsgiEventQueue: Resource at /var/classes/492f4fa1-dc1d-4879-a48d-b799620016e0/org/apache/jsp/libs/cq/gui/components/common/wcm/datasources/childpages/childpages_jsp.classtmp/jcr:content not found, which is not expected for an added or modified node