Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
postgres-lambda-diff
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jakob Huber
postgres-lambda-diff
Commits
005ad6cd
Commit
005ad6cd
authored
24 years ago
by
Peter Eisentraut
Browse files
Options
Downloads
Patches
Plain Diff
Add rudimentary section about controlling kernel's file and process limits.
parent
745f0c21
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/src/sgml/runtime.sgml
+104
-46
104 additions, 46 deletions
doc/src/sgml/runtime.sgml
with
104 additions
and
46 deletions
doc/src/sgml/runtime.sgml
+
104
−
46
View file @
005ad6cd
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.4
5
200
0/12/30 15:03:09
petere Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.4
6
200
1/01/08 21:01:54
petere Exp $
-->
<Chapter Id="runtime">
...
...
@@ -1536,7 +1536,8 @@ options "SEMMNU=120"
<varlistentry>
<term>FreeBSD</>
<term>FreeBSD</term>
<term>OpenBSD</term>
<listitem>
<para>
The options <varname>SYSVSHM</> and <varname>SYSVSEM</> need
...
...
@@ -1711,24 +1712,82 @@ set semsys:seminfo_semmsl=32
</variablelist>
<note>
</para>
</sect2>
<sect2>
<title>Resource Limits</title>
<para>
Unix-like operating systems enforce various kinds of resource
limits that might interfere with the operation of your
<productname>Postgres</productname> server. Of importance are
especially the limits on the number of processes per user, the
number of open files per process, and the amount of memory
available to a process. Each of these have a <quote>hard</quote>
and a <quote>soft</quote> limit. The soft limit is what actually
counts but it can be changed by the user up to the hard limit.
The hard limit can only be changed by the root user. The system
call <function>setrlimit</function> is responsible for setting
these parameters. The shell the built-in command
<command>ulimit</command> (Bourne shells) or
<command>limit</command> (csh) is used to control the resource
limits from the command line. On BSD-derived systems the file
<filename>/etc/login.conf</filename> controls what values the
various resource limits are set to upon login. See
<citerefentry><refentrytitle>login.conf</refentrytitle>
<manvolnum>5</manvolnum></citerefentry> for details. The relevant
parameters are <varname>maxproc</varname>,
<varname>openfiles</varname>, and <varname>datasize</varname>.
For example:
<programlisting>
default:\
...
:datasize-cur=256M:\
:maxproc-cur=256:\
:openfiles-cur=256:\
...
</programlisting>
(<literal>-cur</literal> is the soft limit. Append
<literal>-max</literal> to set the hard limit.)
</para>
<para>
If your platform is not listed here, please consider
contributing some information.
Kernels generally also have an implementation-dependent
system-wide limit on some resources.
<simplelist>
<member>
On <productname>Linux</productname>
<filename>/proc/sys/fs/file-max</filename> determines the
maximum number of files that the kernel will allocate. It can
be changed by writing a different number into the file or by
adding an assignment in <filename>/etc/sysctl.conf</filename>.
The maximum limit of files per process is fixed at the time the
kernel is compiled; see
<filename>/usr/src/linux/Documentation/proc.txt</filename> for
more information.
</member>
</simplelist>
</para>
</note>
<para>
The <productname>Postgres</productname> server uses one process
per connection so you should provide for at least as many processes
as allowed connections, in addition to what you need for the rest
of your system. This is usually not a problem but if you run
several servers on one machine things might get tight.
</para>
</sect2>
<!--
Other fun things to write about one day:
* number of processes per user and system-wide (soft/hard limit)
* open files/inodes per user and system-wide (soft/hard limit)
(Think about this both ways: Increasing it to allow Postgres to
open more files, and decreasing it to prevent Postgres from taking
up all file descriptors.)
* stack and data segment size, plain-old memory limit
-->
<para>
The factory default limit on open files is often set to
<quote>socially friendly</quote> values that allow many users to
coexist on a machine without using an inappropriate fraction of
the system resources. If you run many servers on a machine this
is perhaps what you want, but on dedicated servers you may want to
raise this limit.
</para>
</sect2>
</sect1>
...
...
@@ -1819,12 +1878,11 @@ set semsys:seminfo_semmsl=32
can be started with the argument <option>-l</> (ell) to enable
SSL connections. When starting in SSL mode, the postmaster will look
for the files <filename>server.key</> and <filename>server.crt</> in
the data directory (pointed to by <envar>PGDATA</envar>).
These files should contain the server private key
the data directory. These files should contain the server private key
and certificate respectively. These files must be set up correctly
before an SSL-enabled server can start. If the private key is protected
with a passphrase, the postmaster will prompt for the passphrase and will
not start until it has been
provid
ed.
not start until it has been
enter
ed.
</para>
<para>
...
...
@@ -1859,8 +1917,8 @@ set semsys:seminfo_semmsl=32
Enter the old passphrase to unlock the existing key. Now do
<programlisting>
openssl req -x509 -in cert.req -text -key cert.pem -out cert.cert
cp cert.pem
$PGDATA
/server.key
cp cert.cert
$PGDATA
/server.crt
cp cert.pem
<replaceable>$PGDATA</replaceable>
/server.key
cp cert.cert
<replaceable>$PGDATA</replaceable>
/server.crt
</programlisting>
to turn the certificate into a self-signed certificate and to copy the
key and certificate to where the postmaster will look for them.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment