Ликеро-водочный завод, не связанный с эликсиром postgresql феникс

Я перешел с exrm в distillery в сборке релиза для моего проекта Phoenix. Все работает нормально. когда я делаю

iex -S mix phx.server

Приложение запускается и все связывается с БД. но выпуск сборки не соединяется с базой данных. (Я думаю, что выполнение вышеупомянутой команды кроме сборки ее получающих значения dev для db.)

2018-08-10 08:59:19.160 [error] Postgrex.Protocol (#PID<0.2803.0>) failed to connect: ** (Postgrex.Error) FATAL 53300 (too_many_connections): remaining connection slots are reserved for non-replication superuser connections

когда я вижу /opt/evercam_media/releases/1.0.1/sys.config файл, он дает мне правильные значения базы данных, которые помещают туда для подключения к БД

       {mode,prod}]},
  {'Elixir.EvercamMedia.Repo',
      [{adapter,'Elixir.Ecto.Adapters.Postgres'},
       {types,'Elixir.EvercamMedia.PostgresTypes'},
       {url,<<"postgres://localhost/evercam_dev">>},
       {socket_options,[{keepalive,true}]},
       {timeout,60000},
       {pool_timeout,60000},
       {pool_size,80},
       {lazy,false},
       {ssl,true}]},
  {'Elixir.EvercamMedia.SnapshotRepo',
      [{adapter,'Elixir.Ecto.Adapters.Postgres'},
       {url,<<"postgres://localhost/evercam_dev">>},
       {socket_options,[{keepalive,true}]},
       {timeout,60000},
       {pool_timeout,60000},
       {pool_size,100},
       {lazy,false},
       {ssl,true}]}]}].

в чем здесь проблема? Это не связано с базой данных, что я делаю не так?

1 ответ

Решение

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

По умолчанию для PostgreSQL установлено 100 одновременных клиентских подключений.

У вас есть два варианта:

увеличение max_connections установка в postgresql.conf скажем, до 200

max_connections = 200
shared_buffers = 50MB

снижение ecto пулы соединений

config :ymy_app, EvercamMedia.Repo,
  adapter: Ecto.Adapters.Postgres,
  ...
  pool_size: 40

Этот ответ также может быть полезен.

Другие вопросы по тегам