> ## 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.

# 平台限制与约束

> Square Cloud 上 RAM/CPU 分配、网络和存储限制的技术规格。

Square Cloud 采用基于容器的资源限制，以确保隔离性、稳定性，以及基础设施在各应用间的公平分配。

## 最低资源要求

托管在 Square Cloud 平台上的每个项目都有特定的最低资源要求，以确保最佳性能：

* **机器人：** 至少需要 256 MB RAM。
* **网站：** 至少需要 512 MB RAM。
* **缓存数据库：** 至少需要 512 MB RAM。
* **通用数据库：** 至少需要 1 GB RAM。

### 为什么会有 RAM 最低要求？

容器有强制性的运行开销：语言运行时、操作系统库和网络缓冲区。低于 256 MB 时，内核的 OOM Killer 往往会在启动或垃圾回收期间终止进程，从而使应用无法正常运行。

**技术影响：**

* 每个容器占用 1 个动态 IPv4 和 NVMe 存储 IOPS
* 最低分配可防止资源碎片化（吵闹邻居效应）
* 每日 snapshot 公式：`(Total RAM / 256) * 2`（近似值；在更高等级套餐上，实际每套餐的额度可能更低）

<Note>**影响数据：** 在实施 256 MB 最低限制后，应用稳定性大幅提升，因 OOM（内存不足）导致的崩溃率降低了 **97.7%**。</Note>

## CPU 分配

简而言之：CPU 根据所配置的 RAM 进行分配。增加 RAM 通常会获得更多的 vCPU。

### 规则

#### 单 vCPU 套餐

1 vCPU 套餐上的应用可获得全部容量，不受限流。

#### 多核套餐（≥2 vCPU）

* 性能下限：拥有 ≥512 MB RAM 的应用至少获得 2 个 vCPU。
* 按比例扩展：
  * Hobby（≤2 vCPU）：每 512 MB RAM +1 vCPU
  * Standard / Pro / Enterprise：每 1 GB（1024 MB）RAM +1 vCPU

### 示例

| 套餐         | 套餐容量             | 已配置 RAM |   已分配 vCPU |
| ---------- | ---------------- | ------: | ---------: |
| Standard   | 4 GB / 4 vCPU    |    1 GB | 2 vCPU（下限） |
| Standard   | 4 GB / 4 vCPU    |    4 GB | 4 vCPU（上限） |
| Enterprise | 128 GB / 16 vCPU |    2 GB |     2 vCPU |
| Enterprise | 128 GB / 16 vCPU |   16 GB |    16 vCPU |

限流与安全限制

系统会强制执行套餐的 vCPU 限制，并通过均衡处理来保持分配公平。短期弹性可能在突发流量期间授予额外的 vCPU，但不作保证。

禁止的 CPU 用途：

* 加密货币挖矿
* 未经授权的、不受限制的密集型 ML 工作负载
* 蓄意的资源滥用

违规将导致 `LACK_OF_CPU` 状态并立即被停用。

## 网络限制

带宽随 RAM 扩展：**每 256 MB RAM +50 Mbps**。

| 已分配 RAM |        带宽 |
| ------: | --------: |
|  256 MB |   50 Mbps |
|  512 MB |  100 Mbps |
|    1 GB |  200 Mbps |
|    2 GB |  400 Mbps |
|    4 GB |  800 Mbps |
|    8 GB | 1600 Mbps |
|   10 GB | 2000 Mbps |

如需超过 2000 Mbps 的带宽，请联系支持团队。

## 存储限制

所有项目默认获得 **10 GB NVMe** 存储。

特性：

* 企业级 NVMe
* 在多次 deploy 和重启之间持久保留
* 高 IOPS 和高吞吐量

## 超出限制的状态

### LACK\_OF\_RAM

触发时机：应用超出所分配的 RAM，或内核发出 OOM 信号。

处理动作：立即终止进程以保护宿主机稳定性。

如何修复：

1. 使用性能分析工具查找内存泄漏（Node.js：`--inspect`，Python：`memory_profiler`）。
2. 减少内存中的缓存，或将缓存迁移到 Redis。
3. 在控制面板中增加所分配的 RAM。

### LACK\_OF\_CPU

触发时机：持续的 CPU 使用超出该分配的合理限制。

处理动作：进程以 `LACK_OF_CPU` 状态被终止。

如何修复：

1. 分析 CPU 热点（Node.js：`0x`，Python：`cProfile`）。
2. 优化热循环、数据库查询和 I/O 密集型操作。
3. 增加 RAM 以获得更多 vCPU（见 CPU 分配表）。
4. 将繁重的工作卸载到异步 worker 或批处理作业。

权衡：增加 RAM 以获取 CPU 会提高成本。请衡量代码优化是否比向上扩展更划算。
