MeterMaid の設定は msg.conf 内に格納され、configutil によって保守されます。現在 MeterMaid でサポートされている設定を次に示します。
local.metermaid.enable - MeterMaid が Watcher によって制御されるように、MeterMaid デーモンを実行するシステムでは、この設定を yes に設定してください。
logfile.metermaid.* - これらの設定は、imap、pop、その他のサービスで使用される設定と同じです。MeterMaid は、ログファイルを msg-svr-base/data/log/metermaid に書き込みます。
metermaid.config.listenaddr (INADDR_ANY) - MeterMaid がバインドするアドレス。ほとんどのシステムではデフォルト値の変更は必要ありませんが、マルチホームまたは HA システムの場合は、ここで適切なアドレスを指定することをお勧めします。
metermaid.config.maxthreads (20) - MeterMaid サーバーはマルチスレッドであり、タスクをスケジュールするためのスレッドのプールを保持しています。この値は、MeterMaid で使用されるスレッドの最大数を設定します。CPU の個数が 4 つを超えるシステムでは、この値を増やすと全体的なスループットが向上する可能性があります。
metermaid.config.port (63837) - MeterMaid が接続を待機するポートであり、また MeterMaid クライアントが接続するポートでもあります。
metermaid.config.secret (デフォルト値はなく、値の指定が必要) - 着信接続を認証するために、MeterMaid は、クライアントが MeterMaid への接続時に送信する共有の秘密情報を使用します。
metermaid.config.serverhost (デフォルト値はなく、値の指定が必要) - クライアントが接続するホスト名または IP アドレスです。metermaid.config.listenaddr と同じである場合もありますが、特に Messaging Server 環境では一般に、クライアントをあるシステムに転送するための特定の値が設定されます。
次の設定は、check_metermaid クライアントによって使用されます。
metermaid.mtaclient.connectfrequency (15) - クライアントが MeterMaid に接続する必要がある場合、MeterMaid が使用不可のときに接続が絶えず試行されることを回避するために、クライアントは内部の調整としてこの値を使用します。MeterMaid と通信できない期間、クライアントは、MeterMaid がこの接続をブロックしなかったことを示す「fail」ステータスを MTA マッピングエンジンに返します。
metermaid.mtaclient.connectwait (5) - クライアントが MeterMaid への接続 (初期接続、またはすでに確立されている別の接続の再利用のどちらか) を待機している場合、「fail」ステータスを返す前にクライアントは connectwait 秒間待ちます。
metermaid.mtaclient.debug (no) - このオプションが有効になっている場合、クライアントからのデバッグ情報は、SMTP サーバーのサーバーまたはスレッド固有のログファイルに出力されます。
metermaid.mtaclient.maxconns (3) - マルチスレッドサーバーをサポートするために、クライアントは、MeterMaid への接続のプールを保持できます。それによって、通信中の並行性を向上させることができます。ただし、MeterMaid によって実行される内部のロックのために、特定のテーブルへのアクセスが一度に 1 つの要求に制限され、それによって 1 つのプロセスからの複数の接続による利点が得られない可能性もあります。
metermaid.mtaclient.readwait (10) - MeterMaid との通信中にクライアントが応答を待つ秒数がこの値を超えると、クライアントは単にこの接続を無応答とみなして閉じ、「fail」ステータスを返します。
最後に、次に示すように、調整用のテーブルも msg.conf 内に定義されます。各設定パラメータ内の * は、定義される特定のテーブルの名前です。たとえば、internal という名前のテーブルの場合、最初のパラメータは metermaid.table.internal.data_type になります。
metermaid.table.*.data_type (文字列) - MeterMaid はテーブル内で、文字列と ipv4 という 2 種類のデータをサポートできます。文字列データは、エントリあたり 255 バイトに制限され、大文字と小文字が区別される関数または大文字と小文字が区別されない関数を使用して比較できます (下の metermaid.table.*.options を参照)。
metermaid.table.*.max_entries (1000) - MeterMaid が各テーブルを初期化する場合は、この個数のエントリを事前に割り当てます。MeterMaid は、まだ期限が切れていない場合でも、古いエントリを自動的にリサイクルします。新しい接続を受信した場合、MeterMaid は、最近もっともアクセスされていないエントリを再利用します。サイトは、quota_time 中に受信された接続をキャッシュできるだけの十分な大きさの値を指定するべきです。
metermaid.table.*.options は、テーブルの動作または特性を定義するための、コンマで区切られたキーワードのリストです。以下のキーワードが指定可能です。
nocase - データを操作する場合、すべての比較が、大文字と小文字が区別されない比較関数を使用して実行されます。このオプションは、文字列データに対してのみ有効です。
penalize - quota_time 秒が経過すると、通常、throttle は接続数を 0 にリセットします。penalize オプションが有効になっている場合は、それ以降の quota_time の期間だけ追加の接続試行にペナルティーが科されるように、throttle は接続数を制限容量だけ減らします (ただし、0 未満にはしない)。たとえば、quota_time が 60 で制限容量が 5 の場合、最初の 1 分間にシステムが 12 の接続試行を受信したとすると、最初の 5 つの接続が受け付けられ、次の 5 つの接続が拒否されます。60 秒が経過すると、特定のアドレスに対してカウントされる接続数は 7 に減らされますが、まだ制限容量を超えているために接続試行は拒否されます。追加の接続試行がなかったと仮定した場合、それからさらに 60 秒が経過すると、接続数はさらに減らされ 2 になるため、MeterMaid によって接続試行がふたたび許可されるようになります。
metermaid.table.*.quota (100) - 接続が受信されると、その接続は制限容量に対してカウントされます。quota_time 秒間に受信された接続数がこの値を超えた場合、MeterMaid は接続を拒否します。着信接続に対する実際の効果はマッピングテーブルによって制御されるため、追加の調査、遅延、接続の拒否などが実行される可能性があります。
metermaid.table.*.storage (ハッシュ) - MeterMaid は、hash と splay という 2 種類の保存方法を使用できます。デフォルトのハッシュテーブルの方法が推奨されますが、環境によっては、スプレーツリーによって検索が高速化される場合があります。
metermaid.table.*.quota_time (60) - 接続を quota に対してカウントする期間の秒数を指定します。この秒数が経過すると、着信アドレスに対してカウントされる接続数は、このテーブルの type に応じて減らされます。
metermaid.table*.storage (hash) - MeterMaid は、hashとsplayという 2 種類の保存方法を使用できます。デフォルトのハッシュテーブルの方法が推奨されますが、環境によっては、スプレーツリーによって検索が高速化される場合があります。
metermaid.table.*.type (throttle) - 現在、MeterMaid でサポートされている唯一のテーブルタイプは throttle です。このタイプのテーブルはデータ (一般には IP アドレス) を常時監視し、quota_time 秒の期間中の着信接続の数を quota に調整します。