5.6 KiB
slug | sidebar_position | sidebar_label | title |
---|---|---|---|
/ja/operations/quotas | 51 | Quotas | Quotas |
クォータは、リソース使用量を一定期間内で制限したり、リソースの使用を追跡することを可能にします。クォータは通常「users.xml」に設定されるユーザー設定に含まれます。
システムには、単一のクエリの複雑さを制限する機能もあります。詳細は、クエリの複雑さに関する制限のセクションを参照してください。
クエリの複雑さの制限とは対照的に、クォータは以下を特徴とします:
- 単一のクエリを制限するのではなく、一定期間内で実行できるクエリのセットに対して制限をかけます。
- 分散クエリ処理のための全てのリモートサーバーで消費されたリソースを考慮します。
次に、クォータを定義する「users.xml」ファイルのセクションを見てみましょう。
<!-- クォータ -->
<quotas>
<!-- クォータ名 -->
<default>
<!-- 一定期間の制限。異なる制限を持つ多くのインターバルを設定できます。 -->
<interval>
<!-- インターバルの長さ。 -->
<duration>3600</duration>
<!-- 無制限。指定された時間間隔のデータを収集します。 -->
<queries>0</queries>
<query_selects>0</query_selects>
<query_inserts>0</query_inserts>
<errors>0</errors>
<result_rows>0</result_rows>
<read_rows>0</read_rows>
<execution_time>0</execution_time>
</interval>
</default>
デフォルトでは、クォータは毎時のリソース消費を追跡し、使用を制限しません。 各インターバルごとに計算されたリソース消費は、リクエストごとにサーバーログに出力されます。
<statbox>
<!-- 一定期間の制限。異なる制限を持つ多くのインターバルを設定できます。 -->
<interval>
<!-- インターバルの長さ。 -->
<duration>3600</duration>
<queries>1000</queries>
<query_selects>100</query_selects>
<query_inserts>100</query_inserts>
<errors>100</errors>
<result_rows>1000000000</result_rows>
<read_rows>100000000000</read_rows>
<execution_time>900</execution_time>
</interval>
<interval>
<duration>86400</duration>
<queries>10000</queries>
<query_selects>10000</query_selects>
<query_inserts>10000</query_inserts>
<errors>1000</errors>
<result_rows>5000000000</result_rows>
<read_rows>500000000000</read_rows>
<execution_time>7200</execution_time>
</interval>
</statbox>
‘statbox’ クォータの場合、1時間ごとおよび24時間(86,400秒)ごとに制限が設定されています。時間間隔は、実装で定義された固定の時点から始まるため、24時間のインターバルは必ずしも深夜に始まるわけではありません。
インターバルが終了すると、すべての収集された値はクリアされます。次の時間のクォータ計算は再び始まります。
次の制限可能な項目があります:
queries
– リクエストの総数。
query_selects
– selectリクエストの総数。
query_inserts
– insertリクエストの総数。
errors
– 例外をスローしたクエリの数。
result_rows
– 結果として与えられた行の総数。
read_rows
– すべてのリモートサーバーでクエリを実行するためにテーブルから読み取られたソース行の総数。
execution_time
– 合計のクエリ実行時間(秒:ウォールタイム)。
少なくとも1つの時間間隔で制限を超えると、どの制限がどのインターバルで超えられたか、新しいインターバルがいつ始まるかについてのメッセージが添えられた例外がスローされます(クエリが再び送信できる場合)。
クォータは「クォータキー」機能を使用して、複数のキーに対して独立してリソースを報告することができます。以下にその例を示します:
<!-- グローバルレポートデザイナー用 -->
<web_global>
<!-- keyed – クォータ_key "key" はクエリパラメーターで渡され、キーの値ごとにクォータが別々に追跡されます。
例えば、ユーザー名をキーとして渡せば、クォータはユーザー名ごとに別々に計算されます。
キーを使用するのはプログラムがクォータ_keyを送信している場合にのみ適切です。ユーザーが直接送信する場合は適当ではありません。
<keyed_by_ip /> と記述することもでき、IPアドレスがクォータキーとして使用されます。
(ただし、ユーザーがIPv6アドレスを比較的容易に変更できることを念頭に置いてください。)
-->
<keyed />
クォータは設定の「users」セクションでユーザーに割り当てられます。「アクセス権」のセクションを参照してください。
分散クエリ処理では、蓄積された量は要求者のサーバーに保存されます。そのため、ユーザーが別のサーバーに移動すると、そのサーバーでのクォータは「やり直し」になります。
サーバーが再起動されると、クォータはリセットされます。