Server configuration files

The following configuration files are important for Matrix.

Topic File Described in

Matrix

<systemroot>/data/private/conf/main.inc

Read the main.inc configuration documentation for details of the variables within this file.

PHP

php.ini
The location of this file will vary depending on where php is installed on your system. If you are running ssh, you can locate this file using the following command:

php -i | grep php.ini

This file is often located in the following directories:

Debian
/etc/php5/apache

Matrix uses these settings.

/etc/php5/cli

Back end scripts and Squiz Server use these settings.

RHEL
/etc

Matrix back end scripts and Squiz Server all use these settings.

The required variables are described in this chapter.

Postgres

postgresql.conf

This file is usually located in the following directories:

Debian

/etc/postgresql/8.1/main

RHEL

/var/lib/pgsql/data/

Installation of Postgres is described on the PostgreSQL DB Setup Guide on the Matrix site. Suggestions for tuning your installation are described in this chapter.

Unix Kernel

/etc/sysctl.conf

Suggested changes that can be made to kernel settings to increase in performance are included in this chapter.

Apache

The apache configuration file is usually located in the following directories: Debian and Apache 1.3:: /etc/apache/httpd.conf

Debian and Apache 2.x

/etc/apache2/httpd.conf

RHEL

/etc/httpd/conf/httpd.conf

PHP setup

PHP configuration is set in the file php.ini.

The following settings are required:

file_uploads = On

This allows for HTTP file uploads

upload_max_filesize = 20M

Maximum allowed size for uploaded files. This should match the post_max_size

Postgres performance

Default locale

For performance reasons, it is recommended that you change the default locale from utf-8 to C. This can be done in many ways, however it is recommended that you do this before installing postgres. To see what locale is currently set in your environment, you can run the locale command:

#> locale
LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

Debian

#> export LANG=C
#> export LANGUAGE=C

This can also be done in /etc/environment.

RedHat

In the file /etc/sysconfig/i18n change LANG to an undefined variable, for example:

LANG=""

Postgres configuration file

The postgres configuration file is postgresql.conf. It contains many options that can either improve or impair to the performance of the database. Visit http://www.postgresql.org/docs/<postgres_version>/static/runtime-config.html for more details about the specific options and http://archives.postgresql.org/pgsql-performance/ for general performance tuning.

As a guide, the following settings are important:

Variable Type Description

max_connections

integer

The maximum number of concurrent connections to the database server.

superuser_reserved_connections

integer

This many connections, out of max_connections,are reserved for the superuser. (leaves 48 general connections).

shared_buffers

integer

The number of shared memory buffers used by the database server. Minimum is 2 X max_connections.

max_prepared_transactions

integer

The maximum number of transactions that can be in the "prepared" state simultaneously.

work_mem

integer

The amount of memory to be used by internal sort operations and hash tables before switching to temporary disk files.

maintenance_work_mem

integer

The maximum amount of memory to be used in maintenance operations.

max_fsm_pages

integer

Maximum number of disk pages for which free space will be tracked in the shared free-space map.

max_fsm_relations

integer

Maximum number of relations (tables and indexes) for which free space will be tracked in the shared free-space.

space map fsync

boolean

Enforce that data is written to disk.

checkpoint_segments

integer

Maximum distance between automatic WAL checkpoints.

checkpoint_timeout

integer

Maximum time between automatic WAL checkpoints (seconds).

effective_cache_size

floating point

Increase to the max of free ram to boost your db ( 8192 * 8k = 65536k = 64M ).

stats_start_collector

boolean

Starts the statistics-collection subprocess.

stats_row_level

boolean

Enable the collection of row-level statistics on database activity, useful for tuning.

autovacuum

boolean

Enable autovacuum subprocess.

lc_messages

string

Sets the language in which messages are displayed.

lc_monetary

string

Sets the locale to use for formatting monetary amounts.

lc_numeric

string

Sets the locale to use for formatting numbers.

lc_time

string

Sets the locale to use for formatting date and time values.

We recommend that you adjust these values according to your available system resources and database requirements.

Kernel settings

There are a number of changes that can be made to kernel settings that can also provide an increase in performance. Visit http://www.postgresql.org/docs/current/static/kernel-resources.html for more details.

/etc/sysctl.conf

The following settings are suggested, depending on the hardware of your server:

kernel.shmmax = 536870912

Half of the RAM if the system is stand-alone db-server, otherwise only 128 MB.

kernel.sem = 100 32000 100 100

No change.

kernel.shmmni = 4096

( postgres.conf:shared_buffers / 16 ).

kernel.shmall = 67108864

( kernel.shmmax / pages_size ) presume page-size= 8k.

© 2015- Squiz Pty Ltd