Falha na configuração: Não é possível alocar memória

Olá,

Sou novo no Discourse e tentei instalá-lo pela primeira vez. A primeira tentativa nem sequer criou o banco de dados e a segunda, após (excluir tudo e começar do zero), está reclamando novamente:

2022-08-04 18:51:53.698 UTC [41] FATAL:  could not map anonymous shared memory: Cannot allocate memory
2022-08-04 18:51:53.698 UTC [41] HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently 1125310464 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.

Há outro erro anterior (não sei se é relevante):

I, [2022-08-04T18:51:52.606862 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2022/08/04 18:51:52 socat[18] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory

A máquina é um servidor virtual (não sei qual tecnologia) com 4 GB de RAM e 138 GB de espaço livre.

Não consegui encontrar nenhuma dica adequada aqui. Portanto, alguma ideia de como corrigir?

Obrigado antecipadamente
Roland

1 curtida

Isso é o único que está rodando dentro da VM?

Qual é o resultado de cat /proc/meminfo | grep MemFree?

Você seguiu a Instalação Padrão e executou discourse-setup? Ele deve ajustar as configurações de memória para a especificação da VM, assumindo que ela atenda aos requisitos mínimos.

O que são db_shared_buffers, unicorn_workers e db_work_mem em seu app.yml?

1 curtida

Sim (exceto um pequeno script perl).

MemFree: 758840 kB

Mas mais de 3 GB são para cache.

O último sem nenhuma alteração.

db_shared_buffers: "1024MB"
sem entrada para unicorn_workers
#db_work_mem: "40MB"
1 curtida

Se alterei db_shared_buffers para 512 MB e reconstruí o aplicativo:
./launcher rebuild app

Isso parece muito melhor agora.

1 curtida