ForHosting KIT · 開発者向けツール

バッチスループット計算

バッチスループット計算機は、バッチサイズと処理間隔を実効処理レートに換算します。1 秒、1 分、1 時間あたりの処理数を表示し、必要に応じて目標値と比較します。目標レートを指定すると、現在の処理時間で必要な最小の整数バッチサイズと、現在のサイズで許容される最長間隔を計算します。worker、キューコンシューマー、インポート、推論ジョブ、定期一括処理を調整する前に、処理能力の前提を明確に確認できます。

● Beta無料・ブラウザ内で実行
ご利用方法 ウェブAPIメールTelegramアプリ 近日

バッチ処理を比較可能なレートに換算します

バッチシステムは通常、1 回に処理する項目数と、その処理にかかる時間という、直接比較しにくい 2 つの値で表されます。この計算機は、バッチサイズをバッチ時間で割り、1 秒あたりの実効スループットを求め、同じレートを 1 分および 1 時間あたりにも換算します。たとえば、500 項目を 20 秒ごとに完了し、追加の待ち時間なしで次のバッチを開始できる worker は、1 秒あたり 25 項目を継続的に処理できます。準備、ポーリング、クールダウン、キュー遅延が実際の運用サイクルに含まれる場合は、開始から次の開始までの経過時間をご使用ください。それらを別に扱う場合に限り、純粋な処理時間をご使用ください。結果は平均レートであり、各項目が均等な間隔で完了することを意味しません。結果を最後にまとめて返すバッチでも、長期的な処理能力は同じです。この違いを意識すると、配信遅延と処理能力を混同せず、ストリーミング処理とも適切に比較できます。

目標レートを満たすバッチサイズを計画します

現在の構成が流入量やサービス目標に追いつくか確認する場合は、1 秒あたりの目標項目数を追加してください。計算機は目標レートに現在のバッチ時間を掛け、次の整数へ切り上げます。項目の一部だけをバッチへ追加することはできず、切り捨てると要求された能力を下回るため、切り上げが必要です。したがって、必要バッチサイズは、時間を変えずに目標へ到達または超過する最小の整数です。併記される結果レートでは、整数化によって生じるわずかな余裕も確認できます。この試算では、バッチを増やしても処理時間は増えないと仮定します。初期見積もりには有用ですが、データベース、API、メモリ、並列 worker は非線形に変化することがあります。候補サイズを代表的なデータで測定し、実測した間隔をもう一度入力してください。この手順を繰り返すことで、楽観的な仮定を実システムの根拠ある測定値へ置き換えられます。

現在のバッチで許容される間隔を求めます

上流 API、トランザクション上限、メモリ容量、メッセージブローカーの制約により、バッチサイズを変更できない場合があります。その場合、目標分析は、現在の項目数を目標レートで割り、現サイズで許容される最長時間も計算します。たとえば、600 項目のバッチで 1 秒あたり 40 項目を目指す場合、開始から次の開始までを 15 秒以内にする必要があります。このしきい値は、最速値や平均値だけでなく、実測した高パーセンタイルの時間と比較してください。通常のばらつきがしきい値を超えると、名目上は目標を満たしていても、本番環境ではキューが増え続ける可能性があります。レート比も余裕を簡潔に示します。1 より大きければ目標以上、1 なら一致、1 未満なら不足です。このモデルは 1 本の逐次処理経路を想定しています。複数の同一 worker では、共通間隔内の合計バッチサイズを使うか、負荷が均等な場合だけ各経路の持続可能なレートを合計してください。

キューコンシューマーの規模を決めます

コンシューマーのバッチサイズと間隔をレートに換算し、メッセージ流入量を上回るか確認します。

一括 API 呼び出しを計画します

必要な同期速度を維持するため、リクエストあたりの最小レコード数または最長間隔を求めます。

データパイプラインの能力を評価します

実測したインポートバッチを目標と比較し、サイズまたは処理時間の改善が必要か判断します。

バッチスループットはどの式で計算しますか?

実効スループットは、バッチサイズを秒単位のバッチ時間で割って求めます。1 分および 1 時間あたりにも換算します。

バッチ時間には何を含めますか?

エンドツーエンドの能力には開始間隔をご使用ください。準備や待機を意図的に除外する場合のみ、処理時間だけをご使用ください。

必要バッチサイズはどのように求めますか?

1 秒あたりの目標値にバッチ時間を掛け、目標を下回らないよう次の整数へ切り上げます。

並列 worker も自動で考慮されますか?

自動では考慮されません。共通間隔の合計バッチとして表すか、負荷が均等な場合に各 worker のレートを合計してください。

本番のスループットが低くなるのはなぜですか?

キュー遅延、再試行、準備、競合、非線形な拡張、負荷の偏りが低下要因になります。代表的な高パーセンタイル値をご使用ください。

API リクエストの料金はいくらですか?

API リクエスト 1 回の料金は $0.002 です。ブラウザーでは無料で計算できます。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/dev/batch-throughput

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/dev/batch-throughput \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"batch_size":500,"batch_time_seconds":20}'
{
  "batch_size": 500,
  "batch_time_seconds": 20
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.batch_throughput",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

KITの完全なドキュメントを見る →