

# Client:ClientWrite
<a name="wait-event.clientwrite"></a>

O evento `Client:ClientWrite` ocorre quando o RDS para PostgreSQL está aguardando para gravar dados no cliente.

**Topics**
+ [Versões compatíveis do mecanismo](#wait-event.clientwrite.context.supported)
+ [Contexto](#wait-event.clientwrite.context)
+ [Possíveis causas do maior número de esperas](#wait-event.clientwrite.causes)
+ [Ações](#wait-event.clientwrite.actions)

## Versões compatíveis do mecanismo
<a name="wait-event.clientwrite.context.supported"></a>

Essas informações sobre eventos de espera são compatíveis com o RDS para PostgreSQL versão 10 e superiores.

## Contexto
<a name="wait-event.clientwrite.context"></a>

Um processo de cliente deve ler todos os dados recebidos de um cluster de banco de dados do RDS para PostgreSQL para que o cluster possa enviar mais dados. O tempo de espera do cluster antes de enviar mais dados ao cliente é um evento `Client:ClientWrite`.

O throughput reduzido da rede entre a instância de banco de dados do RDS para PostgreSQL e o cliente pode causar esse evento. A pressão da CPU e a saturação da rede no cliente também podem causar esse evento. *Pressão da CPU* é quando a CPU está totalmente utilizada e existem tarefas aguardando o tempo da CPU. *Saturação de rede* é quando a rede entre o banco de dados e o cliente está transportando mais dados do que ela pode manipular. 

## Possíveis causas do maior número de esperas
<a name="wait-event.clientwrite.causes"></a>

Causas comuns do surgimento do evento `Client:ClientWrite` nas principais esperas incluem: 

**Maior latência de rede**  
Pode haver maior latência de rede entre a instância de banco de dados do RDS para PostgreSQL e o cliente. A latência de rede mais alta aumenta o tempo necessário para o cliente receber os dados.

**Maior carga no cliente**  
Pode haver pressão da CPU ou saturação da rede no lado do cliente. Um aumento na carga do cliente atrasa o recebimento de dados da instância de banco de dados do RDS para PostgreSQL.

**Grande volume de dados enviados ao cliente**  
A instância de banco de dados do RDS para PostgreSQL pode estar enviando uma grande quantidade de dados ao cliente. É possível que um cliente não consiga receber os dados tão rápido quanto o cluster os está enviando. Atividades como cópias de tabelas grandes podem resultar no aumento de eventos `Client:ClientWrite`.

## Ações
<a name="wait-event.clientwrite.actions"></a>

Recomenda-se ações distintas, dependendo dos motivos do evento de espera.

**Topics**
+ [Colocar os clientes na mesma zona de disponibilidade e sub-rede VPC que o cluster](#wait-event.clientwrite.actions.az-vpc-subnet)
+ [Utilizar instâncias da geração atual](#wait-event.clientwrite.actions.db-instance-class)
+ [Reduzir a quantidade de dados enviados ao cliente](#wait-event.clientwrite.actions.reduce-data)
+ [Escalar seu cliente](#wait-event.clientwrite.actions.scale-client)

### Colocar os clientes na mesma zona de disponibilidade e sub-rede VPC que o cluster
<a name="wait-event.clientwrite.actions.az-vpc-subnet"></a>

Para reduzir a latência e aumentar o throughput da rede, coloque clientes na mesma zona de disponibilidade e na mesma sub-rede de nuvem privada virtual (VPC) que a instância de banco de dados do RDS para PostgreSQL.

### Utilizar instâncias da geração atual
<a name="wait-event.clientwrite.actions.db-instance-class"></a>

Em alguns casos, talvez você não esteja utilizando uma classe de instância de banco de dados que ofereça suporte a quadros jumbo. Se estiver executando sua aplicação no Amazon EC2, considere utilizar uma instância de geração atual para o cliente. Além disso, configure a MTU (unidade de transmissão máxima) no sistema operacional cliente. Essa técnica pode reduzir o número de idas e voltas pela rede e aumentar a taxa de transferência da rede. Consulte mais informações em [Frames jumbo (9001 MTU)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#jumbo_frame_instances) no *Guia do usuário do Amazon EC2*.

Para obter informações sobre classes de instância de banco de dados, consulte [Classes de instâncias de banco de dados do ](Concepts.DBInstanceClass.md). Para determinar a classe de instância de banco de dados equivalente a um tipo de instância do Amazon EC2, coloque `db.` antes do nome do tipo de instância do Amazon EC2. Por exemplo, a instância `r5.8xlarge` do Amazon EC2 é equivalente à classe de instância de banco de dados `db.r5.8xlarge`.

### Reduzir a quantidade de dados enviados ao cliente
<a name="wait-event.clientwrite.actions.reduce-data"></a>

Quando possível, ajuste a aplicação para reduzir a quantidade de dados que a instância de banco de dados do RDS para PostgreSQL envia ao cliente. Fazer esses ajustes alivia a contenção da CPU e da rede no lado do cliente.

### Escalar seu cliente
<a name="wait-event.clientwrite.actions.scale-client"></a>

Utilizando o Amazon CloudWatch ou outras métricas de host, determine se o cliente está atualmente restrito pela CPU ou pela largura de banda da rede, ou por ambas. Se o cliente estiver restrito, escale-o de acordo.