This patch makes a number of improvements to the runtime config

documentation.

Neil Conway
This commit is contained in:
Bruce Momjian 2003-09-11 17:27:38 +00:00
parent ab19254618
commit 64a7b58aa0
1 changed files with 156 additions and 128 deletions

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.204 2003/09/07 15:26:45 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.205 2003/09/11 17:27:38 momjian Exp $
--> -->
<Chapter Id="runtime"> <Chapter Id="runtime">
@ -448,14 +448,15 @@ psql: could not connect to server: Connection refused
</indexterm> </indexterm>
<para> <para>
There are a lot of configuration parameters that affect the behavior There are a lot of configuration parameters that affect the
of the database system. Here we describe how to set them and the behavior of the database system. In this subsection, we describe
following subsections will discuss each in detail. how to set configuration parameters; the following subsections
discuss each parameter in detail.
</para> </para>
<para> <para>
All parameter names are case-insensitive. Every parameter takes a All parameter names are case-insensitive. Every parameter takes a
value of one of the four types: Boolean, integer, floating point, value of one of the four types: boolean, integer, floating point,
and string. Boolean values are <literal>ON</literal>, and string. Boolean values are <literal>ON</literal>,
<literal>OFF</literal>, <literal>TRUE</literal>, <literal>OFF</literal>, <literal>TRUE</literal>,
<literal>FALSE</literal>, <literal>YES</literal>, <literal>FALSE</literal>, <literal>YES</literal>,
@ -465,18 +466,18 @@ psql: could not connect to server: Connection refused
<para> <para>
One way to set these options is to edit the file One way to set these options is to edit the file
<filename>postgresql.conf</filename><indexterm><primary>postgresql.conf</></> in the data directory. (A <filename>postgresql.conf</filename><indexterm><primary>postgresql.conf</></>
default file is installed there.) An example of what this file might in the data directory. (A default file is installed there.) An
look like is: example of what this file might look like is:
<programlisting> <programlisting>
# This is a comment # This is a comment
log_connections = yes log_connections = yes
syslog = 2 syslog = 2
search_path = '$user, public' search_path = '$user, public'
</programlisting> </programlisting>
As you see, options are one per line. The equal sign between name One option is specified per line. The equal sign between name and
and value is optional. Whitespace is insignificant and blank lines value is optional. Whitespace is insignificant and blank lines are
are ignored. Hash marks (<literal>#</literal>) introduce comments ignored. Hash marks (<literal>#</literal>) introduce comments
anywhere. Parameter values that are not simple identifiers or anywhere. Parameter values that are not simple identifiers or
numbers should be single-quoted. numbers should be single-quoted.
</para> </para>
@ -485,12 +486,14 @@ search_path = '$user, public'
<indexterm> <indexterm>
<primary>SIGHUP</primary> <primary>SIGHUP</primary>
</indexterm> </indexterm>
The configuration file is reread whenever the <command>postmaster</command> process receives a The configuration file is reread whenever the
<systemitem>SIGHUP</> signal (which is most easily sent by means of <command>postmaster</command> process receives a
<literal>pg_ctl reload</>). The <command>postmaster</command> also propagates this <systemitem>SIGHUP</> signal (which is most easily sent by means
signal to all currently running server processes so that existing of <literal>pg_ctl reload</>). The <command>postmaster</command>
sessions also get the new value. Alternatively, you can send the also propagates this signal to all currently running server
signal to a single server process directly. processes so that existing sessions also get the new
value. Alternatively, you can send the signal to a single server
process directly.
</para> </para>
<para> <para>
@ -518,20 +521,21 @@ env PGOPTIONS='-c geqo=off' psql
</para> </para>
<para> <para>
Some options can be changed in individual SQL sessions with the Some options can be changed in individual <acronym>SQL</acronym>
<command>SET</command> command, for example: sessions with the <command>SET</command> command, for example:
<screen> <screen>
SET ENABLE_SEQSCAN TO OFF; SET ENABLE_SEQSCAN TO OFF;
</screen> </screen>
See the SQL command language reference for details on the syntax. See the <acronym>SQL</acronym> command language reference for
details on the syntax.
</para> </para>
<para> <para>
Furthermore, it is possible to assign a set of option settings to Furthermore, it is possible to assign a set of option settings to
a user or a database. Whenever a session is started, the default a user or a database. Whenever a session is started, the default
settings for the user and database involved are loaded. The settings for the user and database involved are loaded. The
commands <literal>ALTER DATABASE</literal> and <literal>ALTER commands <command>ALTER DATABASE</command> and <command>ALTER
USER</literal>, respectively, are used to configure these USER</command>, respectively, are used to configure these
settings. Such per-database settings override anything received settings. Such per-database settings override anything received
from the <command>postmaster</command> command-line or the from the <command>postmaster</command> command-line or the
configuration file, and in turn are overridden by per-user configuration file, and in turn are overridden by per-user
@ -644,8 +648,8 @@ SET ENABLE_SEQSCAN TO OFF;
Determines the maximum number of concurrent connections to the Determines the maximum number of concurrent connections to the
database server. The default is typically 100, but may be less database server. The default is typically 100, but may be less
if your kernel settings will not support it (as determined if your kernel settings will not support it (as determined
during <application>initdb</>). during <application>initdb</>). This parameter can only be
This parameter can only be set at server start. set at server start.
</para> </para>
<para> <para>
@ -665,16 +669,16 @@ SET ENABLE_SEQSCAN TO OFF;
<para> <para>
Determines the number of <quote>connection slots</quote> that Determines the number of <quote>connection slots</quote> that
are reserved for connections by <productname>PostgreSQL</> are reserved for connections by <productname>PostgreSQL</>
superusers. At most <varname>max_connections</> connections can superusers. At most <varname>MAX_CONNECTIONS</> connections can
ever be active simultaneously. Whenever the number of active ever be active simultaneously. Whenever the number of active
concurrent connections is at least <varname>max_connections</> minus concurrent connections is at least <varname>MAX_CONNECTIONS</> minus
<varname>superuser_reserved_connections</varname>, new connections <varname>SUPERUSER_RESERVED_CONNECTIONS</varname>, new connections
will be accepted only for superusers. will be accepted only for superusers.
</para> </para>
<para> <para>
The default value is 2. The value must be less than the value of The default value is 2. The value must be less than the value of
<varname>max_connections</varname>. This parameter can only be <varname>MAX_CONNECTIONS</varname>. This parameter can only be
set at server start. set at server start.
</para> </para>
</listitem> </listitem>
@ -874,7 +878,7 @@ SET ENABLE_SEQSCAN TO OFF;
</sect2> </sect2>
<sect2 id="runtime-config-resource"> <sect2 id="runtime-config-resource">
<title>Resource Usage (Except WAL)</title> <title>Resource Consumption</title>
<sect3 id="runtime-config-resource-memory"> <sect3 id="runtime-config-resource-memory">
<title>Memory</title> <title>Memory</title>
@ -885,16 +889,16 @@ SET ENABLE_SEQSCAN TO OFF;
<listitem> <listitem>
<para> <para>
Sets the number of shared memory buffers used by the database Sets the number of shared memory buffers used by the database
server. The default is typically 1000, but may be less server. The default is typically 1000, but may be less if your
if your kernel settings will not support it (as determined kernel settings will not support it (as determined during
during <application>initdb</>). Each buffer is 8192 <application>initdb</>). Each buffer is 8192 bytes, unless a
bytes, unless a different value of <literal>BLCKSZ</> was chosen different value of <literal>BLCKSZ</> was chosen when building
when building the server. This setting must be at least 16, the server. This setting must be at least 16, as well as at
as well as at least twice the value of least twice the value of <varname>MAX_CONNECTIONS</varname>;
<varname>MAX_CONNECTIONS</varname>; however, settings significantly however, settings significantly higher than the minimum are
higher than the minimum are usually needed for good performance. usually needed for good performance. Values of a few thousand
Values of a few thousand are recommended for production installations. are recommended for production installations. This option can
This option can only be set at server start. only be set at server start.
</para> </para>
<para> <para>
@ -924,7 +928,7 @@ SET ENABLE_SEQSCAN TO OFF;
Hash tables are used in hash joins, hash-based aggregation, and Hash tables are used in hash joins, hash-based aggregation, and
hash-based processing of <literal>IN</> subqueries. Because hash-based processing of <literal>IN</> subqueries. Because
<command>CREATE INDEX</> is used when restoring a database, it might <command>CREATE INDEX</> is used when restoring a database, it might
be good to temporary increase this value during a restore. be good to temporarily increase this value during a restore.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -955,7 +959,7 @@ SET ENABLE_SEQSCAN TO OFF;
Sets the maximum number of disk pages for which free space will Sets the maximum number of disk pages for which free space will
be tracked in the shared free-space map. Six bytes of shared memory be tracked in the shared free-space map. Six bytes of shared memory
are consumed for each page slot. This setting must be more than are consumed for each page slot. This setting must be more than
16 * <varname>max_fsm_relations</varname>. The default is 20000. 16 * <varname>MAX_FSM_RELATIONS</varname>. The default is 20000.
This option can only be set at server start. This option can only be set at server start.
</para> </para>
</listitem> </listitem>
@ -1008,14 +1012,14 @@ SET ENABLE_SEQSCAN TO OFF;
<listitem> <listitem>
<para> <para>
This variable specifies one or more shared libraries that are This variable specifies one or more shared libraries that are
to be preloaded at server start. A parameterless initialization to be preloaded at server start. A parameterless
function can optionally be called for each library. To specify initialization function can optionally be called for each
that, add a colon and the name of the initialization function after library. To specify that, add a colon and the name of the
the library name. For example initialization function after the library name. For example
<literal>'$libdir/mylib:mylib_init'</literal> would cause <literal>'$libdir/mylib:mylib_init'</literal> would cause
<literal>mylib</> to be preloaded and <literal>mylib_init</> <literal>mylib</> to be preloaded and <literal>mylib_init</>
to be executed. If more than one library is to be loaded, separate to be executed. If more than one library is to be loaded,
their names with commas. separate their names with commas.
</para> </para>
<para> <para>
@ -1024,11 +1028,11 @@ SET ENABLE_SEQSCAN TO OFF;
</para> </para>
<para> <para>
PostgreSQL procedural language libraries may be preloaded in this way, PostgreSQL procedural language libraries may be preloaded in
typically by using the syntax this way, typically by using the syntax
<literal>'$libdir/plXXX:plXXX_init'</literal> <literal>'$libdir/plXXX:plXXX_init'</literal> where
where <literal>XXX</literal> is <literal>pgsql</>, <literal>XXX</literal> is <literal>pgsql</>, <literal>perl</>,
<literal>perl</>, <literal>tcl</>, or <literal>python</>. <literal>tcl</>, or <literal>python</>.
</para> </para>
<para> <para>
@ -1075,27 +1079,29 @@ SET ENABLE_SEQSCAN TO OFF;
</para> </para>
<para> <para>
However, this operation does slow down However, using <function>fsync()</function> results in a
<productname>PostgreSQL</> because at transaction commit it has performance penalty: when a transaction is committed,
wait for the operating system to flush the write-ahead log. <productname>PostgreSQL</productname> must wait for the
Without <function>fsync</>, the operating system is allowed to operating system to flush the write-ahead log to disk. When
do its best in buffering, sorting, and delaying writes, which <varname>FSYNC</varname> is disabled, the operating system is
can considerably increase performance. However, if the system allowed to do its best in buffering, ordering, and delaying
crashes, the results of the last few committed transactions may writes. This can result in significantly improved performance.
be lost in part or whole. In the worst case, unrecoverable data However, if the system crashes, the results of the last few
corruption may occur. committed transactions may be lost in part or whole. In the
worst case, unrecoverable data corruption may occur.
</para> </para>
<para> <para>
For the above reasons, everyone can decide for himself what to Due to the risks involved, there is no universally correct
do with the <varname>fsync</> option. Some administrators setting for <varname>FSYNC</varname>. Some administrators
always leave it off, some turn it off only for bulk loads, always disable <varname>FSYNC</varname>, while others only
where there is a clear restart point if something goes wrong, turn it off for bulk loads, where there is a clear restart
and some leave it on just to be on the safe side. The default point if something goes wrong, whereas some administrators
is on so that you are on the safe side. If you trust your always leave <varname>FSYNC</varname> enabled. The default is
operating system, your hardware, and your utility company (or to enable <varname>FSYNC</varname>, for maximum reliability.
better your battery backup), you can consider disabling If you trust your operating system, your hardware, and your
<varname>fsync</varname>. utility company (or your battery backup), you can consider
disabling <varname>FSYNC</varname>.
</para> </para>
<para> <para>
@ -1143,10 +1149,10 @@ SET ENABLE_SEQSCAN TO OFF;
<term><varname>CHECKPOINT_SEGMENTS</varname> (<type>integer</type>)</term> <term><varname>CHECKPOINT_SEGMENTS</varname> (<type>integer</type>)</term>
<listitem> <listitem>
<para> <para>
Maximum distance between automatic WAL checkpoints, in log file Maximum distance between automatic WAL checkpoints, in log
segments (each segment is normally 16 megabytes). file segments (each segment is normally 16 megabytes). The
This option can only be set at server start or in the default is three. This option can only be set at server start
<filename>postgresql.conf</filename> file. or in the <filename>postgresql.conf</filename> file.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1155,9 +1161,10 @@ SET ENABLE_SEQSCAN TO OFF;
<term><varname>CHECKPOINT_TIMEOUT</varname> (<type>integer</type>)</term> <term><varname>CHECKPOINT_TIMEOUT</varname> (<type>integer</type>)</term>
<listitem> <listitem>
<para> <para>
Maximum time between automatic WAL checkpoints, in seconds. Maximum time between automatic WAL checkpoints, in
This option can only be set at server start or in the seconds. The default is 300 seconds. This option can only be
<filename>postgresql.conf</filename> file. set at server start or in the <filename>postgresql.conf</>
file.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1166,9 +1173,10 @@ SET ENABLE_SEQSCAN TO OFF;
<term><varname>CHECKPOINT_WARNING</varname> (<type>integer</type>)</term> <term><varname>CHECKPOINT_WARNING</varname> (<type>integer</type>)</term>
<listitem> <listitem>
<para> <para>
Send a message to the server logs if checkpoints caused by the Write a message to the server logs if checkpoints caused by
filling of checkpoint segment files happens more frequently than the filling of checkpoint segment files happens more
this number of seconds. Zero turns off the warning. frequently than this number of seconds. The default is 30
seconds. Zero turns off the warning.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1178,16 +1186,17 @@ SET ENABLE_SEQSCAN TO OFF;
<term><varname>COMMIT_DELAY</varname> (<type>integer</type>)</term> <term><varname>COMMIT_DELAY</varname> (<type>integer</type>)</term>
<listitem> <listitem>
<para> <para>
Time delay between writing a commit record to the WAL buffer and Time delay between writing a commit record to the WAL buffer
flushing the buffer out to disk, in microseconds. A nonzero and flushing the buffer out to disk, in microseconds. A
delay allows multiple transactions to be committed with only one nonzero delay allows multiple transactions to be committed
<function>fsync</function> system call, if system load is high with only one <function>fsync()</function> system call, if
enough additional transactions may become ready to commit within system load is high enough additional transactions may become
the given interval. But the delay is just wasted if no other ready to commit within the given interval. But the delay is
transactions become ready to commit. Therefore, the delay is just wasted if no other transactions become ready to
only performed if at least <varname>COMMIT_SIBLINGS</varname> other transactions commit. Therefore, the delay is only performed if at least
are active at the instant that a server process has written its commit <varname>COMMIT_SIBLINGS</varname> other transactions are
record. active at the instant that a server process has written its
commit record. The default is zero (no delay).
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1196,10 +1205,11 @@ SET ENABLE_SEQSCAN TO OFF;
<term><varname>COMMIT_SIBLINGS</varname> (<type>integer</type>)</term> <term><varname>COMMIT_SIBLINGS</varname> (<type>integer</type>)</term>
<listitem> <listitem>
<para> <para>
Minimum number of concurrent open transactions to require before Minimum number of concurrent open transactions to require
performing the <varname>COMMIT_DELAY</> delay. A larger value before performing the <varname>COMMIT_DELAY</> delay. A larger
makes it more probable that at least one other transaction will value makes it more probable that at least one other
become ready to commit during the delay interval. transaction will become ready to commit during the delay
interval. The default is five.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1209,20 +1219,36 @@ SET ENABLE_SEQSCAN TO OFF;
</sect2> </sect2>
<sect2 id="runtime-config-query"> <sect2 id="runtime-config-query">
<title>Query Tuning</title> <title>Query Planning</title>
<sect3 id="runtime-config-query-enable"> <sect3 id="runtime-config-query-enable">
<title>Planner Method Enabling</title> <title>Planner Method Configuration</title>
<note>
<para>
These configuration parameters provide a crude method for
influencing the query plans chosen by the query optimizer. If
the default plan chosen by the optimizer is not optimal, a
temporary solution may be found by using one of these
configuration parameters to force the optimizer to choose a
better plan. Other ways to improve the quality of the plans
chosen by the optimizer include configuring the <xref
linkend="runtime-config-query-constants"
endterm="runtime-config-query-constants-title">, running
<command>ANALYZE</command> more frequently, and increasing the
amount of statistics collected for a particular column using
<command>ALTER TABLE SET STATISTICS</command>.
</para>
</note>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term><varname>ENABLE_HASHAGG</varname> (<type>boolean</type>)</term> <term><varname>ENABLE_HASHAGG</varname> (<type>boolean</type>)</term>
<listitem> <listitem>
<para> <para>
Enables or disables the query planner's use of hashed aggregation Enables or disables the query planner's use of hashed
plan types. The default is on. This is used for debugging the query aggregation plan types. The default is on. This is used for
planner. debugging the query planner.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1232,8 +1258,8 @@ SET ENABLE_SEQSCAN TO OFF;
<listitem> <listitem>
<para> <para>
Enables or disables the query planner's use of hash-join plan Enables or disables the query planner's use of hash-join plan
types. The default is on. This is used for debugging the types. The default is on. This is used for debugging the query
query planner. planner.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1247,8 +1273,8 @@ SET ENABLE_SEQSCAN TO OFF;
<listitem> <listitem>
<para> <para>
Enables or disables the query planner's use of index-scan plan Enables or disables the query planner's use of index-scan plan
types. The default is on. This is used to debugging the types. The default is on. This is used for debugging the query
query planner. planner.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1258,8 +1284,8 @@ SET ENABLE_SEQSCAN TO OFF;
<listitem> <listitem>
<para> <para>
Enables or disables the query planner's use of merge-join plan Enables or disables the query planner's use of merge-join plan
types. The default is on. This is used for debugging the types. The default is on. This is used for debugging the query
query planner. planner.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1311,9 +1337,9 @@ SET ENABLE_SEQSCAN TO OFF;
<term><varname>ENABLE_TIDSCAN</varname> (<type>boolean</type>)</term> <term><varname>ENABLE_TIDSCAN</varname> (<type>boolean</type>)</term>
<listitem> <listitem>
<para> <para>
Enables or disables the query planner's use of <acronym>TID</> scan plan Enables or disables the query planner's use of <acronym>TID</>
types. The default is on. This is used for debugging the scan plan types. The default is on. This is used for debugging
query planner. the query planner.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -1321,7 +1347,9 @@ SET ENABLE_SEQSCAN TO OFF;
</variablelist> </variablelist>
</sect3> </sect3>
<sect3 id="runtime-config-query-constants"> <sect3 id="runtime-config-query-constants">
<title>Planner Cost Constants</title> <title id="runtime-config-query-constants-title">
Planner Cost Constants
</title>
<note> <note>
<para> <para>
@ -1339,10 +1367,10 @@ SET ENABLE_SEQSCAN TO OFF;
<listitem> <listitem>
<para> <para>
Sets the planner's assumption about the effective size of the Sets the planner's assumption about the effective size of the
disk cache (that is, the portion of the kernel's disk cache that disk cache (that is, the portion of the kernel's disk cache
will be used for <productname>PostgreSQL</productname> data that will be used for <productname>PostgreSQL</productname>
files). This is measured in disk pages, which are normally 8 kB data files). This is measured in disk pages, which are
each. normally 8192 bytes each.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -2002,7 +2030,7 @@ SET ENABLE_SEQSCAN TO OFF;
</para> </para>
<para> <para>
The value for <varname>search_path</varname> has to be a comma-separated The value for <varname>SEARCH_PATH</varname> has to be a comma-separated
list of schema names. If one of the list items is list of schema names. If one of the list items is
the special value <literal>$user</literal>, then the schema the special value <literal>$user</literal>, then the schema
having the name returned by <function>SESSION_USER</> is substituted, if there having the name returned by <function>SESSION_USER</> is substituted, if there
@ -2040,11 +2068,11 @@ SET ENABLE_SEQSCAN TO OFF;
<para> <para>
The current effective value of the search path can be examined The current effective value of the search path can be examined
via the SQL function <function>current_schemas()</>. This is not via the <acronym>SQL</acronym> function
quite the same as examining the value of <function>current_schemas()</>. This is not quite the same as
<varname>search_path</varname>, since <function>current_schemas()</> examining the value of <varname>SEARCH_PATH</varname>, since
shows how the requests appearing in <varname>search_path</varname> <function>current_schemas()</> shows how the requests
were resolved. appearing in <varname>SEARCH_PATH</varname> were resolved.
</para> </para>
<para> <para>
@ -2381,8 +2409,8 @@ dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
<listitem> <listitem>
<para> <para>
The shared lock table is sized on the assumption that at most The shared lock table is sized on the assumption that at most
<varname>max_locks_per_transaction</> * <varname>MAX_LOCKS_PER_TRANSACTION</> *
<varname>max_connections</varname> distinct objects will need to <varname>MAX_CONNECTIONS</varname> distinct objects will need to
be locked at any one time. The default, 64, has historically be locked at any one time. The default, 64, has historically
proven sufficient, but you might need to raise this value if you proven sufficient, but you might need to raise this value if you
have clients that touch many different tables in a single have clients that touch many different tables in a single
@ -2590,7 +2618,7 @@ dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
<para> <para>
Detection of a damaged page header normally causes Detection of a damaged page header normally causes
<productname>PostgreSQL</> to report an error, aborting the current <productname>PostgreSQL</> to report an error, aborting the current
transaction. Setting <varname>zero_damaged_pages</> to true causes transaction. Setting <varname>ZERO_DAMAGED_PAGES</> to true causes
the system to instead report a warning, zero out the damaged page, the system to instead report a warning, zero out the damaged page,
and continue processing. This behavior <emphasis>will destroy data</>, and continue processing. This behavior <emphasis>will destroy data</>,
namely all the rows on the damaged page. But it allows you to get namely all the rows on the damaged page. But it allows you to get
@ -2786,7 +2814,7 @@ $ <userinput>postmaster -o '-S 1024 -s'</userinput>
<row> <row>
<entry><varname>SHMMAX</></> <entry><varname>SHMMAX</></>
<entry>Maximum size of shared memory segment (bytes)</> <entry>Maximum size of shared memory segment (bytes)</>
<entry>250 kB + 8.2 kB * <varname>shared_buffers</> + 14.2 kB * <varname>max_connections</> up to infinity</entry> <entry>250 kB + 8.2 kB * <varname>SHARED_BUFFERS</> + 14.2 kB * <varname>MAX_CONNECTIONS</> up to infinity</entry>
</row> </row>
<row> <row>
@ -3331,7 +3359,7 @@ default:\
processes do so then the system-wide limit can easily be exceeded. processes do so then the system-wide limit can easily be exceeded.
If you find this happening, and you do not want to alter the system-wide If you find this happening, and you do not want to alter the system-wide
limit, you can set <productname>PostgreSQL</productname>'s limit, you can set <productname>PostgreSQL</productname>'s
<varname>max_files_per_process</varname> configuration parameter to <varname>MAX_FILES_PER_PROCESS</varname> configuration parameter to
limit the consumption of open files. limit the consumption of open files.
</para> </para>
</sect2> </sect2>
@ -3440,7 +3468,7 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput
With <acronym>SSL</> support compiled in, the With <acronym>SSL</> support compiled in, the
<productname>PostgreSQL</> server can be started with <productname>PostgreSQL</> server can be started with
<acronym>SSL</> enabled by setting the parameter <acronym>SSL</> enabled by setting the parameter
<varname>ssl</varname> to on in <filename>postgresql.conf</>. When <varname>SSL</varname> to on in <filename>postgresql.conf</>. When
starting in <acronym>SSL</> mode, the server will look for the starting in <acronym>SSL</> mode, the server will look for the
files <filename>server.key</> and <filename>server.crt</> in the files <filename>server.key</> and <filename>server.crt</> in the
data directory, which should contain the server private key data directory, which should contain the server private key