Skip to content

How to tune memory when running image in OpenShift #518

@dtsao

Description

@dtsao

Container platform

OCP 4

Version

postgresql-15:1-10 from https://catalog.redhat.com/software/containers/rhel8/postgresql-15/63d29a05fd1c4f5552a305b3?architecture=amd64&tag=1-10&push_date=1684253325000

running via a deployment config on Openshift 4.10

OS version of the container image

RHEL 8

Bugzilla, Jira

No response

Description

The readme for v15 refers to the --memory parameter. Where do I set the --memory parameter in an Openshift deployment config (DC) so that the shared_buffers and effective_cache_size are set automatically?

My DC has resource limits configured under spec:template:spec as:

      containers:
        - resources:
            limits:
              cpu: '1'
              memory: 4Gi
            requests:
              cpu: 100m
              memory: 400Mi

but my shared_buffers is the default 128MB:

# show shared_buffers;
 shared_buffers
----------------
 128MB
(1 row)

Do you recommend that I instead manually set the shared_buffers and effective_cache_size parameters by editing the postgresql.conf file located at /var/lib/pgsql/data/userdata/postgresql.conf?


FYI - For anyone who comes across this post due to errors like this in their logs:

ERROR:  could not resize shared memory segment "/PostgreSQL.1237418266" to 33554432 bytes: No space left on device

You should check the space allocated to /dev/shm:

sh-4.4$ df -h
Filesystem                            Size  Used Avail Use% Mounted on
...
shm                                    64M  1.1M   63M   2% /dev/shm
...

I increased the /dev/shm space from 64M to 128M via the technique here: https://stackoverflow.com/questions/43373463/how-to-increase-shm-size-of-a-kubernetes-container-shm-size-equivalent-of-doc/63152020#63152020

by adding lines to the DC:

spec:
  template:
    spec:
      volumes:
        - name: dshm
          emptyDir:
            medium: Memory
            sizeLimit: 128Mi
	   containers:
          volumeMounts:
            - name: dshm
              mountPath: /dev/shm

After the above DC change, the could not resize shared memory segment errors have stopped.

Reproducer

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions