最小リソース要件
Square Cloud プラットフォーム上でホストされる各プロジェクトには、最適なパフォーマンスを確保するための特定の最小リソース要件があります。- ボット: 最小 256 MB の RAM が必要です。
- ウェブサイト: 最小 512 MB の RAM が必要です。
- キャッシュデータベース: 最小 512 MB の RAM が必要です。
- 一般データベース: 最小 1 GB の RAM が必要です。
なぜ RAM の最小値が存在するのか?
コンテナには必須の運用オーバーヘッドがあります。言語ランタイム、OS ライブラリ、そしてネットワークバッファです。256 MB を下回ると、カーネルの OOM Killer が起動時やガベージコレクション中にプロセスを終了させる傾向があり、アプリケーションが実行不可能になります。 技術的な影響:- 各コンテナは 1 つの動的 IPv4 と NVMe ストレージの IOPS を消費します
- 最小割り当てはリソースの断片化(ノイジーネイバー効果)を防止します
- 日次 snapshot の計算式:
(Total RAM / 256) * 2(概算。上位プランでは、プランごとの正確な許容数がこれより少ない場合があります)
影響データ: 256 MB の最小制限を実装した後、アプリケーションの安定性が劇的に向上し、OOM(Out of Memory)によるクラッシュ率が 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
例
スロットリングと安全制限
システムはプランの vCPU 制限を強制し、分配を公平に保つためにレベリングを適用します。短期的な弾力性により、スパイク時に追加の vCPU が付与されることがありますが、保証されるものではありません。
禁止されている CPU の使用:
- 暗号通貨のマイニング
- 許可のない、無制限で集約的な ML ワークロード
- 意図的なリソースの悪用
LACK_OF_CPU ステータスとなり、即時に停止されます。
ネットワークの制限
帯域幅は RAM に応じてスケールします: 256 MB の RAM ごとに +50 Mbps。
2000 Mbps を超える要件については、サポートにお問い合わせください。
ストレージの制限
すべてのプロジェクトには、デフォルトで 10 GB の NVMe ストレージが付与されます。 特徴:- エンタープライズグレードの NVMe
- デプロイと再起動をまたいで永続化
- 高い IOPS とスループット
制限超過ステータス
LACK_OF_RAM
発生条件: アプリケーションが割り当てられた RAM を超過するか、カーネルが OOM を通知した場合。 対応: ホストの安定性を保護するため、プロセスは即座に終了されます。 修正方法:- プロファイラでメモリリークを見つける(Node.js:
--inspect、Python:memory_profiler)。 - メモリ内キャッシュを削減するか、キャッシュを Redis に移動する。
- コントロールパネルで割り当て RAM を増やす。
LACK_OF_CPU
発生条件: 持続的な CPU 使用率が割り当てに対する妥当な制限を超えた場合。 対応: プロセスはLACK_OF_CPU ステータスで終了されます。
修正方法:
- CPU のホットスポットをプロファイルする(Node.js:
0x、Python:cProfile)。 - ホットループ、DB クエリ、I/O バウンドの処理を最適化する。
- RAM を増やしてより多くの vCPU を得る(CPU 割り当て表を参照)。
- 重い処理を非同期ワーカーやバッチジョブにオフロードする。

