跳转到主要内容
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(近似值;在更高等级套餐上,实际每套餐的额度可能更低)
影响数据: 在实施 256 MB 最低限制后,应用稳定性大幅提升,因 OOM(内存不足)导致的崩溃率降低了 97.7%

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
Standard4 GB / 4 vCPU1 GB2 vCPU(下限)
Standard4 GB / 4 vCPU4 GB4 vCPU(上限)
Enterprise128 GB / 16 vCPU2 GB2 vCPU
Enterprise128 GB / 16 vCPU16 GB16 vCPU
限流与安全限制 系统会强制执行套餐的 vCPU 限制,并通过均衡处理来保持分配公平。短期弹性可能在突发流量期间授予额外的 vCPU,但不作保证。 禁止的 CPU 用途:
  • 加密货币挖矿
  • 未经授权的、不受限制的密集型 ML 工作负载
  • 蓄意的资源滥用
违规将导致 LACK_OF_CPU 状态并立即被停用。

网络限制

带宽随 RAM 扩展:每 256 MB RAM +50 Mbps
已分配 RAM带宽
256 MB50 Mbps
512 MB100 Mbps
1 GB200 Mbps
2 GB400 Mbps
4 GB800 Mbps
8 GB1600 Mbps
10 GB2000 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 会提高成本。请衡量代码优化是否比向上扩展更划算。