-
Notifications
You must be signed in to change notification settings - Fork 9
limits
Herokuのプラットフォームの様々なコンポーネントに課される制限についての記事です。この記事では、コネクション数など、制限についてのみ記載しています。データベースが持つ能力など機能の話には言及しません。
制限を設けるのには様々な理由があります。時に制限は、基盤となるプラットフォームが構築されている方法を理由として存在しています。例えば、Herokuは1500行以上のログの履歴を保持しません。(ロギング用のアドオンを介して、残りのログを利用することは可能です)。また時に制限、良いユーザーとしての振る舞いを強制します。APIのリクエストは1時間に1500回以内と決められています。
各制限事項は、別のドキュメントの制限に関するドキュメントをリンクしてあります。リンク先の記事でより多くの情報が得られるでしょう。
Herokuは最新の1500行のログしか保持しません。もしそれ以上を保持したい場合はherokuのsyslog drain機能を用いて自身でログを管理して下さい。
最初のHTTPリクエストは30秒以内に応答データを返してください。(プロセスがアクティブであることを示すために完全な応答もしくは応答データの一部を返す必要があります。)プロセスが30秒以内に応答を返さないと、H12エラーがログに出力されます。
その後、55秒ごとにデータクライアントまたはプロセスからデータを送信する必要があります。もし55秒以上データの送信がない場合は、H15エラーがログに出力されます。
The router maintains a 1MB buffer for responses from the dyno per connection.
ルーターは、各コネクションごとのdynoからレスポンス用に1MBのバッファーを保持します。
リクエストを処理する際、ルータは8KBのバッファを確保します。HTTPリクエストの各行とヘッダはそれぞれ8KBの長さまで許容されますが合わせて8KB以内に収まる必要があります。もしそれ以上のデータを含むリクエストが有った場合は、そのリクエストはディスパッチ前にルーターでドロップされます。
各 dyno のメモリは512MBです。
heroku run コマンドなどで利用される一時的なdynoのコネクションは1時間以上、非アクティブな状態が続くと切断されます。そのとき、dyneのあSIGHUPシグナルを創出します。このアイドルタイムアウトは、非アクティブなセッションを開きっぱなしにしたことによる課金を防いでくれます。
環境変数データの容量は、キーと値を含めて各アプリごとに16kbまでです。
dynoのwebプロセスが$PORTにアサインされるまでに60秒以上かかる場合はプロセスがKILLされます。
dynoがKILLされた、または再起動された場合、その中のプロセスは10秒以内にSIGTERMを受け取ります。この10秒が過ぎるとそのプロセスはSIGKILLシグナルを受け取り強制的に終了します。
dynoのメモリサイズが三倍にまで達した場合、R15エラーを出力しdynoは再起動します。
10分に1度、クラッシュしたdynoの再起動を試みます。起動失敗するようなコードをpushしてしまった場合、dynoは一旦起動してから10分後にまた再起動するということです。通常のケースでは、長時間のプロセスがクラッシュを引き起こした場合、勝手に再起動が行われます。ただし2回連続再起動に失敗した場合は10分間ダウンしたままとなります。
デフォルトでは、dynoのスケールは100までです。それ以上のdynoを希望の場合はサポートへ連絡して下さい。
1つのdynoに1度に256までのプロセス / スレッド(どんな状態のものも含む)が生成できます。この制限はプロセス数とスレッド数の合計値であることに注意して下さい。 255スレッドと1プロセスであれば、256プロセスと数えます。
コンパイル後のslugサイズは200MBです。殆どのアプリはこの制限に収まるでしょう。
Slug コンパイルは15以内です。
Dataclips が返す行は29,999 行までです。
Dataclips 10秒以上かかるクエリをキャンセルします。この値は変更可能です。
- 最大 500 コネクション
- ストレージ容量: 1TB
- メモリキャッシュが可能(size dependent on plan)
- devは10,000 行、basicプランは 10,000,000行までしか参照できない。
- 最大20コネクション
- メモリキャッシュは利用不可
Heroku APIは1時間に1200回まで実行出来ます。