Red Hat Bugzilla – Bug 1003445
PostgreSQL gear limits too low
Last modified: 2015-05-14 19:27:32 EDT
Description of problem:
The resource limits for Postgres are too low. Max connections were set to only 10, shared buffer set to only 2MB, and effective_cache_size set to only 32. This can be found in postgresql.conf or a gear.
Version-Release number of selected component (if applicable):
Openshift Online 2.0.32
Create a DJango application that uses Postgres, and load test so that > 10 active DB connections are created.
In the New Relic logs you get:
psycopg2:OperationalError: FATAL: sorry, too many clients already
The application should be able to handle > 10 current connections.
The settings should be configurable.
Based on discussion from the thread we need to make the following improvements to the default config:
The smallest config that is relevant is a small gear sharing space with the application server:
max_connections = 100
shared_buffers = 64 megs
effective_cache_size = 186 megs
work_mem = 3 megs
Larger sized gears and non-shared gears could use more of both.
For reference we were using out of the box parameters for postgresql - they were completely untuned for real deployments.
What do limits for larger gears look like?
The jbossas cartridge, for example, sets:
max memory x0.5 for max heap size
max memory x0.2 for PermGen
Adjusted currently insufficient parameters with https://github.com/openshift/origin-server/pull/3547
The rest will be handled with https://trello.com/c/kuZecQIv/269-provide-a-convenient-means-of-configuring-db-parameters-mysql-mongodb-postgresql
Commit pushed to master at https://github.com/openshift/origin-server
Bump up PostgreSQL memory parameters
Values are discussed in
Larger gears should allow even larger values, but further discussions
Values are lower on embedded cartridges.