O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
Decodificar todos os novos registros no WAL,
Filtrar registros de log nos quais eles não estão interessados,
Replique os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.
O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
Decodificar todos os novos registros no WAL,
Filtrar registros de log nos quais eles não estão interessados,
Replique os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.
O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
Decodificar todos os novos registros no WAL,
Filtrar registros de log nos quais eles não estão interessados,
Replique os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.
O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
Decodificar todos os novos registros no WAL,
Filtrar registros de log nos quais eles não estão interessados,
Replique os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.
O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
Decodificar todos os novos registros no WAL,
Filtrar registros de log nos quais eles não estão interessados,
Replique os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.
O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
Decodificar todos os novos registros no WAL,
Filtrar registros de log nos quais eles não estão interessados,
Replique os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.
O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
Decodificar todos os novos registros no WAL,
Filtrar registros de log nos quais eles não estão interessados,
Replique os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.