In a very large or heavy-use environment, you can improve the performance of Citadel's data store by placing the databases and/or database logs on a separate disk, or disk array. This is very easy to configure. However, with today's very fast solid state disk systems, such a configuration is likely not necessary.
If you want to try it, however, here are the required steps. Here are the assumptions that are being made in this example:
Here's how to do it:
Shut down the Citadel service. The citserver process should not be running while you perform this operation.
Move the existing database files:
mkdir /disk1/ctdldata mv /usr/local/citadel/data/cdb.* /disk1/ctdldata
Move the existing log files:
mkdir /disk2/ctdllogs mv /usr/local/citadel/data/log.* /disk2/ctdllogs
Ensure that these directories and files are owned by the 'citadel' user:
chown -R citadel:citadel /disk1/ctdldata chown -R citadel:citadel /disk2/ctdllogs
Create a file called /usr/local/citadel/data/DB_CONFIG containing the following lines:
# # Set database paths # set_data_dir /disk1/ctdldata set_lg_dir /disk2/ctdllogs
Restart the Citadel server.
That's really all there is to it! It's up to you to decide how many disk subsystems to use. You might want to just move the logs, or you might want to move the logs and the databases. For maximum performance, make sure your disk subsystems are on separate I/O channels. During normal operation you will observe that the Citadel data store maximizes the use of both channels and disk subsystems.