How may I improve performance by placing the databases and/or database logs on separate disk subsystems?
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.
Here are the required steps. Here are the assumptions that are being made in this example:
* Your Citadel installation is in /usr/local/citadel
* Your database will be on /disk1/ctdldata
* Your database logs will be on /disk2/ctdllogs
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.