Code Engine の制限と割り当て量
以下のセクションには、IBM Cloud® Code Engine の制約と割り当て量の設定に関する技術的な詳細を記載しています。
リソースの割り当ては、プロジェクトの割り当て量や請求にどのような影響を与えますか?
コンソールから、プロジェクト概要ページで現在の Code Engine リソース割り振りに関する情報を表示できます。 特定のアプリケーションやジョブごとに設定した内容に基づいて、割り当てられたメモリや vCPU の値に関する情報を表示したい場合は、プロジェクト内のアプリケーションまたはジョブの一覧を確認してください。 CLI を使用する場合は、project get コマンドを使用して、プロジェクトの現在のリソース割り振りの使用量に関する情報を取得することもできます。
Code Engine では、ワークロードが消費する設定済みのメモリと vCPU、および受信した HTTP 呼び出しに基づいて、実際に使用したリソース分のみを支払うことになります。 アプリのスケールがゼロになった場合、またはジョブやビルドが実行されていない場合は、リソースを消費していないため、料金は発生しません。 すべてのアプリケーションとジョブをホストするために、Code Engineは必要なインフラストラクチャーをデプロイして管理します。 このインフラストラクチャーについては請求は行われませんが、プロジェクト割り当て量に対してはカウントされます。 クォータの詳細については、以下の表を参照のこと。
エフェメラル・ストレージの使用は、メモリーによって制限されるようになった。 Code Engine のエフェメラル・ストレージは、デフォルト値の 0.4 GB(400 MB)またはメモリの設定値を超えることはできません。 エフェメラル・ストレージにデフォルト以上の容量が必要な場合は、 vCPU とメモリの有効な組み合わせに従ってメモリを増やす必要があります。
エフェメラル・ストレージとメモリの関係については、 サポートされるメモリとCPUの組み合わせを 参照のこと。
アプリケーションのデフォルトおよび制限
以下の表に、アプリケーションの制限をリストします。
| カテゴリ | デフォルト | 最大値: | 最大値を拡張する必要がありますか? |
|---|---|---|---|
| CPU | 1.0 | 12.0 | IBM サポートにお問い合わせください |
| 一時ストレージ | 400 M | 48 G (メモリによる制限あり) |
IBM サポートにお問い合わせください |
| 最大スケール | 10 | 250 | IBM サポートにお問い合わせください |
| メモリー | 4 G | 48 G | IBM サポートにお問い合わせください |
| 最小スケール | 0 | 250 | IBM サポートにお問い合わせください |
| 並行性 | 100 | 1000 | IBM サポートにお問い合わせください |
| タイムアウト | 300 秒 | 600 秒 | IBM サポートにお問い合わせください |
サポートされる CPU とメモリーの組み合わせについて詳しくは、サポートされるメモリーと CPU の組み合わせを参照してください。
Code Engine には、プロジェクト内のアプリに対する制限があります。
- 1つのプロジェクトにつき、アプリは40個までです。
- 1つのプロジェクトにつき、すべてのアプリを合わせて合計120回までの修正が可能です。
Code Engine は、アプリケーションのリソースのオーバーコミットをサポートしていません。 したがって、API またはkubectl apply -f <yaml>を使用してアプリケーションを作成する場合は、CPU、Memory、およびEphemeral StorageのResource.RequestsおよびResource.Limitsの値を指定する必要があり、これらの値は同じでなければなりません。
ジョブのデフォルトおよび制限
以下の表に、ジョブの制限をリストします。
| カテゴリ | デフォルト | 最大値: | 最大値を拡張する必要がありますか? |
|---|---|---|---|
| 配列添字 | 0 | 9999999 | IBM サポートにお問い合わせください |
| 配列サイズ | 1 | 1000 | 該当なし |
| CPU | 1.0 | 12.0 | IBM サポートにお問い合わせください |
| 一時ストレージ | 400 M | 48 G (メモリによる制限あり) |
IBM サポートにお問い合わせください |
| メモリー | 4 G | 48 G | IBM サポートにお問い合わせください |
| 再試行 | 3 | 5 | IBM サポートにお問い合わせください |
| タイムアウト | 7200 秒 (2 時間) | 86400秒(24時間) | IBM サポートにお問い合わせください |
配列のインデックスは、コンマ区切りのリスト、またはハイフン区切りのインデックス範囲であり、これによって実行するジョブインスタンスを指定します。例えば、 1,3,6,9 や 1-5,7-8,10 などです。
配列のサイズは、並列で実行するジョブインスタンスの数です。
サポートされる CPU とメモリーの組み合わせについて詳しくは、サポートされるメモリーと CPU の組み合わせを参照してください。
Code Engine は、プロジェクトごとに 100 個のジョブに制限されています。 100件のジョブ実行が開始された後は、新しいジョブ実行を開始する前に、古いジョブ実行を必ずクリーンアップしてください。
ジョブ・サイズの制限
Code Engine は、ジョブとジョブ実行のサイズを制限します。最大値は 10 KiB です。 コンソール、CLI、または API でジョブとジョブ実行を作成または更新するときに、Code Engine はそのジョブまたはジョブ実行のサイズをチェックします。 操作が制限を超えている場合は、サイズ制限の超過エラーが返されます。 このエラーが表示された場合は、以下のいずれかの方法でジョブまたはジョブの実行規模を縮小してみてください。
-
コマンドと引数を使用する場合は、これらのオプションの使用を減らす、短くする、ジョブまたはジョブ実行で使用するコンテナー・イメージの中に移動することを試してください。
-
環境変数を使用する場合は、環境変数の数を少なくしたり、短くしたりしてみてください。 シークレットまたは構成マップを使用して環境変数を定義し、
--env-from-secretまたは--env-from-configmapオプションを指定したjob create、job update、jobrun submit、jobrun resubmitコマンドを使用して、それらの環境変数をジョブにインポートすることができます。
ジョブのトラブルシューティングに関する詳細については、「 トラブルシューティング - ジョブの実行を送信できないのはなぜですか? 」を参照してください。
機能制限
次の表は、各関数の制限値を示しています。
| カテゴリ | 最大 |
|---|---|
| 走行時間の長さ | 120 秒 |
| メモリー | 48000 MB |
| リクエスト・ボディとレスポンス・ボディのサイズ | 5 MB |
| コードサイズ(インライン) | base64 オーバーヘッドを含む 100 KB |
| コードサイズ(ローカルソース) | 200MB圧縮 |
| コードサイズ(API) | base64 オーバーヘッドを含む 100 KB |
定期タイマー (cron) のサブスクリプションの制限
以下の表は、定期的なタイマー購読の制限の一覧である。
| カテゴリ | 最大 | 最大値を拡張する必要がありますか? |
|---|---|---|
| データサイズ | 4096バイト | IBM サポートにお問い合わせください |
Code Engine では、定期タイマー (cron) イベントのデータ・サイズが最大 4096 バイトに制限されています。 定期タイマー (cron) イベントを作成または更新すると、Code Engine がその cron イベントのデータのサイズをチェックします。 定期タイマー (cron) イベントのデータが制限を超えている場合は、サイズ制限超過エラーが返されます。 このエラーを受け取った場合は、cron イベントのデータのサイズを 4096 バイト未満に減らしてみてください。
サブスクリプションのトラブルシューティングについて詳しくは、サブスクリプションのデバッグを参照してください。
プロジェクトの制限
以下の表は、プロジェクトに関する制限を一覧にしたものです。
| カテゴリ | 最大 | 最大値を拡張する必要がありますか? |
|---|---|---|
| 地域別プロジェクト | 20 | IBM サポートにお問い合わせください |
プロジェクトの最大数には、アクティブなプロジェクトと、完全には削除されていないプロジェクトが含まれます。 プロジェクトを削除すると、そのプロジェクトは一時削除され、完全に削除されるまでの7日間は復元可能です。 論理削除されたプロジェクトは、コンソールまたは CLI を使用して表示できます。 詳しくは、プロジェクトの削除を参照してください。
プロジェクトの割り当て量
以下の表に、プロジェクトの割り当て量をリストします。
プロジェクト内では、制限は互いに独立して適用されることに注意すること。 512GBのメモリ制限など、ある制限に達した場合、アプリやジョブの250インスタンスといった別の制限にまだ達していなくても、このクォータ制限がワークロードの実行能力に影響を与える可能性があります。
| カテゴリ | 説明 |
|---|---|
| アプリ | 1つのプロジェクトにつき、アプリは40個までです。 |
| アプリのリビジョン | 1つのプロジェクトにつき、すべてのアプリを合わせて合計120回までの修正が可能です。 |
| ビルド | ビルド構成はプロジェクトごとに 100 個に制限されます。 |
| ビルド実行 | ビルド実行は、プロジェクトごとに 100 個に制限されます。これを超えると、古いものを削除またはクリーンアップする必要があります。 |
| 構成マップ | 構成マップはプロジェクトごとに 100 個に制限されます。 |
| CPU | すべてのアプリインスタンス、実行中のジョブインスタンス、実行中のビルドインスタンスの合計が128 vCPU を超えることはできません。 |
| ドメインマッピング(カスタム) | カスタム・ドメイン・マッピングは、1プロジェクトにつき80個までです。 |
| 一時ストレージ | すべてのアプリインスタンス、実行中のジョブインスタンス、実行中のビルドインスタンスの合計が、512Gのエフェメラルストレージを超えることはできません。 |
| フリート | 1つのプロジェクトにつき、フリートは1000個までです。 |
| 関数 | 1つのプロジェクトにつき、関数は20個までです。 |
| インスタンス (アクティブ) | アプリインスタンス、関数インスタンス、実行中のジョブインスタンス、および実行中のビルドインスタンスの合計数は、250を超えてはなりません。 |
| インスタンス (合計) | アクティブ・インスタンスの数、および完了したジョブ・インスタンスとビルド・インスタンスの数が 2500 を超えることはできません。 |
| ジョブ | ジョブはプロジェクトごとに 100 個に制限されます。 |
| ジョブ実行 | ジョブ実行は、プロジェクトごとに 100 個に制限されます。これを超えると、古いものを削除またはクリーンアップする必要があります。 |
| メモリー | すべてのアプリインスタンス、実行中のジョブインスタンス、実行中のビルドインスタンスの合計が512Gのメモリを超えることはできない。 |
| 秘密 | シークレットはプロジェクトごとに 100 個に制限されます。 |
| サブスクリプション (IBM Cloud Object Storage) | サブスクリプション (Object Storage) はプロジェクトごとに 100 個に制限されます。 |
| サブネット・プール | 1プロジェクトあたりのサブネットプール数は1000に制限されています。 |
| サブスクリプション ( Kafka / IBM® Event Streams for IBM Cloud® ) | 1つのプロジェクトにつき、 Kafka のサブスクリプションは100件までと制限されています。 |
| サブスクリプション (定期タイマー (cron)) | 定期タイマー (cron) のサブスクリプションはプロジェクトごとに 100 個に制限されます。 |
例えば、 vCPU、アプリやジョブのアクティブなインスタンスは250個に制限されます。 各制限は他の制限とは無関係に適用されるため、 0.125 VCPUでアプリを250インスタンスにスケールしたいとします。 これらの値は約32 vCPU, という結果になり、この結果は最大値の128 vCPU よりも小さいため、機能する。 しかし、 0.125 vCPU,、512インスタンスを使用することはできません。 vCPU,、最大128インスタンスは満たしますが、最大250インスタンスの制限に違反することになります。
制限の緩和
しきい値は固定されていますが、IBM サポートへの連絡およびサポート Case の作成だけ増やすことができます。