Re: Error: "could not fork new process for connection: Cannot allocate memory"

From: frank picabia <fpicabia(at)gmail(dot)com>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: Error: "could not fork new process for connection: Cannot allocate memory"
Date: 2020-12-21 13:24:57
Message-ID: CA+AKB6E59Brzeve_c3xNn-4GtkTGkfRs06vLtX8ToEwQFpFXoQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Here are settings as suggested in the wiki to run a query to
display those changed from defaults:

name | current_setting | source
------------------------------+-------------------+----------------------
application_name | psql | client
autovacuum | on | configuration file
autovacuum_analyze_threshold | 500 | configuration file
autovacuum_naptime | 1d | configuration file
autovacuum_vacuum_threshold | 1000 | configuration file
checkpoint_segments | 12 | configuration file
client_encoding | UTF8 | client
client_min_messages | notice | configuration file
effective_cache_size | 4TB | configuration file
escape_string_warning | off | configuration file
lc_messages | en_US.UTF-8 | configuration file
lc_monetary | en_US.UTF-8 | configuration file
lc_numeric | en_US.UTF-8 | configuration file
lc_time | en_US.UTF-8 | configuration file
listen_addresses | * | configuration file
log_destination | stderr | configuration file
log_directory | pg_log | configuration file
log_duration | on | configuration file
log_filename | postgresql-%a.log | configuration file
log_line_prefix | <%t> | configuration file
log_min_error_statement | debug1 | configuration file
log_min_messages | info | configuration file
log_rotation_age | 1d | configuration file
log_rotation_size | 0 | configuration file
log_truncate_on_rotation | on | configuration file
logging_collector | on | configuration file
maintenance_work_mem | 160MB | configuration file
max_connections | 500 | configuration file
max_stack_depth | 2MB | environment variable
shared_buffers | 1GB | configuration file
standard_conforming_strings | off | configuration file
statement_timeout | 1h | configuration file
work_mem | 10MB | configuration file

On Mon, Dec 21, 2020 at 9:17 AM frank picabia <fpicabia(at)gmail(dot)com> wrote:

>
> This error occurred a couple of days ago and it is unlikely to repeat as
> it was a series of exams being done in moodle with over 500 students.
> However I'd like to tune Postgres to see if it can be prevented.
>
> First of all, we did not run out of memory within the OS. This system is
> monitored by cacti and
> Real Used memory never exceeded 30 GB on a server having 64 GB ram plus
> some swap.
>
> I can also see in the messages log, the Linux kernel OOM killer was never
> triggered.
>
> The postgres user running the DB has no ulimits on memory which might
> apply.
>
> Here is the entry in the Postgres log:
>
> <2020-12-19 13:19:29 GMT>LOG: could not fork new process for connection:
> Cannot allocate memory
> TopMemoryContext: 136704 total in 13 blocks; 6688 free (4 chunks); 130016
> used
> smgr relation table: 24576 total in 2 blocks; 13904 free (4 chunks); 10672
> used
> TopTransactionContext: 8192 total in 1 blocks; 6152 free (5 chunks); 2040
> used
> <2020-12-19 13:19:29 GMT>LOG: could not fork new process for connection:
> Cannot allocate memory
> TransactionAbortContext: 32768 total in 1 blocks; 32728 free (0 chunks);
> 40 used
> Portal hash: 8192 total in 1 blocks; 1672 free (0 chunks); 6520 used
> PortalMemory: 0 total in 0 blocks; 0 free (0 chunks); 0 used
>
> My conclusion is this memory error must be related to limits within
> Postgres tunables, or perhaps something like SHM memory, which we have not
> set up in the sysctl.conf , so this is just a default amount.
>
> The values we have in postgres.conf are mostly suggested by pgtune
> script. The one exception being max_connections=500, which was increased
> to try to avoid bottlenecks being reached with Apache client numbers, and
> gradually over time as we saw we still had lots of memory available with a
> higher connection limit.
>
> Which tunables do you need to see?
>
>

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Laurenz Albe 2020-12-21 13:34:58 Re: Error: "could not fork new process for connection: Cannot allocate memory"
Previous Message frank picabia 2020-12-21 13:17:32 Error: "could not fork new process for connection: Cannot allocate memory"