Software Configuration Files
Last Updated: 21 Oct 2016
The following configuration files are important for Squiz Matrix.
Area | File | Described in |
---|---|---|
Squiz Matrix | <systemroot>/data/private/conf/main.inc | Refer to the Annotated main.inc chapter in this manual 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 – Squiz Matrix uses these settings. /etc/php5/cli – back end scripts and Squiz Server use these settings. RHEL: /etc – Squiz 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 Squiz Matrix site. |
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& Apache 1.3: /etc/apache/httpd.conf Debian& Apache 2.x: /etc/apache2/httpd.conf RHEL: /etc/httpd/conf/httpd.conf | Refer to the Manual Installation Guide on the Squiz Matrix site for details of the configuration required in this file. |
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. See 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. For more details, Refer to http://www.postgresql.org/docs/current/static/kernel-resources.html.
/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