> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Limites de recursos: RAM, CPU, banda e armazenamento

> Limites de recursos da Square Cloud: RAM mínima por projeto, vCPUs por RAM, banda dedicada, 10 GB de armazenamento NVMe e os status LACK_OF_RAM e LACK_OF_CPU.

A Square Cloud implementa limites de recursos baseados em containers para garantir isolamento, estabilidade e distribuição justa da infraestrutura entre as aplicações.

## Requisitos mínimos de recursos

Cada projeto hospedado na plataforma Square Cloud tem requisitos mínimos de recursos específicos para garantir um desempenho ideal:

* **Bots:** mínimo de 256 MB de RAM.
* **Sites:** mínimo de 512 MB de RAM.
* **Bancos de dados de cache:** mínimo de 512 MB de RAM.
* **Bancos de dados gerais:** mínimo de 1 GB de RAM.

### Por que existem mínimos de RAM?

Containers têm um overhead operacional obrigatório: runtime da linguagem, bibliotecas do sistema operacional e buffers de rede. Abaixo de 256 MB, o OOM Killer do kernel tende a encerrar processos durante o boot ou o garbage collection, o que torna a aplicação inviável.

**Implicações técnicas:**

* Cada container consome 1 IPv4 dinâmico e IOPS de armazenamento NVMe
* Alocações mínimas evitam a fragmentação de recursos (efeito noisy neighbor)
* Fórmula de snapshots diários: `(RAM Total / 256) * 2` (aproximada; a quantidade exata por plano pode ser menor nos planos mais altos)

<Note>**Dado de impacto:** depois que implementamos o mínimo de 256 MB, a estabilidade das aplicações aumentou drasticamente, reduzindo a taxa de crashes por OOM (Out of Memory) em **97,7%**.</Note>

## Alocação de CPU

Resposta curta: a CPU é alocada com base na RAM configurada. Aumentar a RAM costuma dar mais vCPUs.

### Regras

#### Planos de 1 vCPU

As aplicações em planos de 1 vCPU recebem a capacidade total, sem throttling.

#### Planos multicore (≥2 vCPU)

* Piso de performance: aplicações com ≥512 MB de RAM recebem pelo menos 2 vCPUs.
* Escala proporcional:
  * Hobby (≤2 vCPU): +1 vCPU a cada 512 MB de RAM
  * Standard / Pro / Enterprise: +1 vCPU a cada 1 GB (1024 MB) de RAM

### Exemplos

| Plano | Capacidade do plano | RAM configurada | vCPUs alocadas |
| - | - | -: | -: |
| Standard | 4 GB / 4 vCPU | 1 GB | 2 vCPUs (piso) |
| Standard | 4 GB / 4 vCPU | 4 GB | 4 vCPUs (máximo) |
| Enterprise | 128 GB / 16 vCPU | 2 GB | 2 vCPUs |
| Enterprise | 128 GB / 16 vCPU | 16 GB | 16 vCPUs |

### Throttling e limites de segurança

O sistema aplica o limite de vCPUs do plano e faz um nivelamento para manter a distribuição justa. Uma elasticidade de curto prazo pode conceder vCPUs extras em picos, mas isso não é garantido.

Usos de CPU proibidos:

* Mineração de criptomoedas
* Cargas de machine learning intensivas e sem restrição, sem autorização
* Abuso deliberado de recursos

Esses usos violam a [política contra abuso, mineração de cripto e spam](https://help.squarecloud.app/pt-br/article/politica-contra-abuso-mineracao-de-cripto-e-spam-1hpht0a/). Além disso, uma aplicação que mantém todas as suas vCPUs ocupadas é parada com [`LACK_OF_CPU`](#lack_of_cpu).

## Limites de rede

Toda aplicação tem **largura de banda dedicada**, igual para upload e download, que escala proporcionalmente à RAM alocada: **+50 Mbps a cada 256 MB**. A banda é reservada ao seu container, sem compartilhamento com vizinhos, e o tráfego nunca é medido nem cobrado.

Alguns exemplos:

| RAM alocada | Largura de banda |
| -: | -: |
| 256 MB | 50 Mbps |
| 512 MB | 100 Mbps |
| 1 GB | 200 Mbps |
| 2 GB | 400 Mbps |
| 4 GB | 800 Mbps |

Para cargas sustentadas de alto tráfego, o suporte pode configurar um cluster dedicado.

**Turbo de inicialização.** Toda inicialização ganha um impulso bem acima da banda do plano: instalar dependências, baixar modelos ou reconstruir caches é rápido, independentemente da alocação.

Bancos de dados têm banda dedicada própria, nas duas direções, dimensionada pela RAM.

## Limites de armazenamento

Todos os projetos recebem **10 GB de armazenamento NVMe** por padrão.

Características:

* NVMe de classe empresarial
* Persistente entre deploys e reinícios
* IOPS e throughput altos

## Status de limite excedido

Quando uma aplicação passa dos seus recursos, a Square Cloud a para, escreve nos logs dela uma linha `[SQUARE-SHIELD]` com o motivo e envia um e-mail para você. Esta tabela é a referência para a qual as outras páginas apontam; as correções estão logo abaixo.

| Linha do log | O que aconteceu | O que a Square Cloud faz |
| - | - | - |
| `[SQUARE-SHIELD] LACK_OF_RAM` | A aplicação usou toda a sua RAM. | Para a aplicação. |
| `[SQUARE-SHIELD] LACK_OF_CPU` | A aplicação manteve todas as suas vCPUs ocupadas em verificações consecutivas. | Para a aplicação. Bancos de dados nunca são parados por CPU. |
| `[SQUARE-SHIELD] ABUSE_REQUESTS` | A aplicação enviou requisições ao Discord ou a sites `squareweb.app` em um ritmo abusivo por um período prolongado. | Para a aplicação, e iniciá-la falha com `CONTAINER_TEMPORARILY_SUSPENDED` por um curto período. |

A central de ajuda explica os e-mails de alerta em [alerta de queda: bloqueios por RAM, CPU e requisições](https://help.squarecloud.app/pt-br/article/alerta-de-queda-bloqueios-por-ram-cpu-e-requisicoes-asp814/).

### LACK\_OF\_RAM

A aplicação atingiu a RAM alocada, então o processo foi parado para proteger o host.

Como resolver:

1. Encontre vazamentos de memória com um profiler (Node.js: `--inspect`, Python: `memory_profiler`). Veja [vazamento de memória em Node.js](https://help.squarecloud.app/pt-br/article/vazamento-de-memoria-em-nodejs-identificar-e-corrigir-epm0qe/).
2. Reduza os caches em memória ou mova-os para o Redis.
3. Aumente a RAM da aplicação no dashboard, ou aumente o `MEMORY` no [arquivo de configuração](/pt-br/getting-started/config-file#memory).

### LACK\_OF\_CPU

A aplicação usou todas as suas vCPUs por um período prolongado, então o processo foi parado.

Como resolver:

1. Faça o profiling dos pontos críticos de CPU (Node.js: `0x`, Python: `cProfile`). Veja [CPU em 100%: dicas de otimização](https://help.squarecloud.app/pt-br/article/cpu-em-100-dicas-de-otimizacao-k18kxl/).
2. Otimize loops críticos, queries de banco de dados e operações I/O-bound.
3. Aumente a RAM para obter mais vCPUs (veja [Alocação de CPU](#alocação-de-cpu)).
4. Mova o trabalho pesado para workers assíncronos ou jobs em lote.

Trade-off: aumentar a RAM para ganhar CPU aumenta os custos. Avalie se otimizar o código sai mais barato do que aumentar os recursos.

### CONTAINER\_TEMPORARILY\_SUSPENDED

Os logs mostraram `[SQUARE-SHIELD] ABUSE_REQUESTS`: a aplicação enviou requisições ao Discord ou a sites `squareweb.app` em um ritmo abusivo por um período prolongado. Quase sempre isso é um loop infinito, uma nova tentativa sem intervalo ou um cache ausente, não popularidade real. A aplicação foi parada e, até o bloqueio terminar, iniciá-la falha com `CONTAINER_TEMPORARILY_SUSPENDED`.

Como resolver:

1. Leia o e-mail e os últimos logs para encontrar o código que envia as requisições.
2. Guarde em cache o que você busca, adicione um intervalo entre as novas tentativas e respeite os cabeçalhos de rate limit da API que você chama. Veja [rate limits da API do Discord](https://help.squarecloud.app/pt-br/article/rate-limits-da-api-do-discord-erro-429-como-evitar-t9qt2s/).
3. Aguarde um pouco e inicie a aplicação de novo.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.