Дочерний процесс пост-ГРЭС, съедающий большую память

Если сервер находится позади туземного брандмауэра/маршрутизатора, необходимо сделать более, чем открытый порт в брандмауэре. Необходимо передать порт серверу.

Так, если внешний адрес Вашего маршрутизатора: 12.34.56.78 И внутренний адрес Вашего сервера 192.168.1.2

Затем Вам нужно к порту передачи 5900 на Вашем маршрутизаторе к 192.168.1.2:5900, который является Вашим сервером.

Ваше корректное в этом 12.34.56.78 не отвечает на соединения. Это фильтрует все входящие соединения.

2
задан 19 September 2012 в 15:19
1 ответ

Первое, что следует рассмотреть, - это увеличить shared_buffers на порядок выше, по крайней мере, до 1 ГБ и, возможно, намного больше, до 25% от основной памяти. Это то, что говорится в документе .

При размере всего 32 МБ, из которых ~ 18 МБ уже будет использовано только для обработки max_connections к 950, дочерние процессы имеют доступ к едва ли достаточному количеству общих память, чтобы поделиться чем угодно.

Это может смягчить, а может и не уменьшить проблему потребления памяти для вашей конкретной рабочей нагрузки и ситуации, но в любом случае это шаг в правильном направлении. Текущее значение безумно низкое.

В частности, что касается OOM, вы можете рассмотреть обходные пути, предлагаемые в разделе Linux Memory Overcommit документа. Однако обратите внимание, что это короткий абзац для сложной проблемы. Там' s больше, например в этом сообщении блога и его комментарии с указателями для понимания контекста и компромиссов, связанных с ограничением или отключением OOM.

Помимо этого, утечка памяти в Postgres всегда возможное. Убедитесь, что вы используете последнюю дополнительную версию, если она уже исправлена. В примечаниях к выпуску, которые поставляются с каждым выпуском исправлений, время от времени определенно упоминаются утечки памяти.

3
ответ дан 3 December 2019 в 10:53

Теги

Похожие вопросы