サービス毎のデフォルト値
Dovecot 2.2.13 調べ。
$ doveconf -ad |grep '^default_.*_limit'
default_client_limit = 1000
default_process_limit = 100
default_vsz_limit = 256 M
| サービス名 | client_limit | process_limit | service_count |
|---|---|---|---|
| aggregator | $default_client_limit | $default_process_limit | 0 |
| anvil | $default_client_limit | 1 | 0 |
| auth-worker | 1 | $default_process_limit | 1 |
| auth | $default_client_limit | 1 | 0 |
| config | $default_client_limit | $default_process_limit | 0 |
| dict | 1 | $default_process_limit | 0 |
| director | $default_client_limit | 1 | 0 |
| dns_client | 1 | $default_process_limit | 0 |
| doveadm | 1 | $default_process_limit | 1 |
| imap-login | $default_client_limit | $default_process_limit | 1 |
| imap-urlauth-login | $default_client_limit | $default_process_limit | 1 |
| imap-urlauth-worker | 1 | 1024 | 1 |
| imap-urlauth | 1 | 1024 | 1 |
| imap | 1 | 1024 | 1 |
| indexer-worker | 1 | 10 | 0 |
| indexer | $default_client_limit | 1 | 0 |
| ipc | $default_client_limit | 1 | 0 |
| lmtp | 1 | $default_process_limit | 0 |
| log | $default_client_limit | 1 | 0 |
| pop3-login | $default_client_limit | $default_process_limit | 1 |
| pop3 | 1 | 1024 | 1 |
| replicator | $default_client_limit | 1 | 0 |
| ssl-params | $default_client_limit | $default_process_limit | 0 |
| stats | $default_client_limit | 1 | 0 |
| tcpwrap | 1 | $default_process_limit | 0 |
上の表の $default_client_limit と
$default_process_limit の項目は、doveconf の出力上は値が 0 と表示される。
dovecot.conf ファイル中では client_limit=$default_client_limit
のようには記述できず、client_limit=0 のように記述する必要がある。
client_limit
サービスの 1 プロセスあたりの最大クライアント数。
サービスあたりの最大クライアント数ではないので注意。
0 に設定すると default_client_limit (デフォルト値 1000)の値になる。
pop3, imap, managesieve サービスでは 1 が推奨値(デフォルト) であり、
同時接続数を調整する場合は process_limit を設定すべき。FIXME
service_count を 1 以上に設定している場合、そちらが優先される。
たとえば service_count = 1 に設定すると client_limit = 1 相当になる。
参考:
- [Dovecot] difference between client_limit and process_limit
process_limit
サービスあたりの最大プロセス数。
0 に設定すると default_process_limit (デフォルト値 100)の値になる。
service_count
サービスの 1プロセスあたりのクライアントの対応数。 サービスプロセスは、指定の数のクライアント接続を完了したあとに終了する。 0 に設定すると無制限を意味する。
Apache HTTPD の
FIXME: 0 か 1 以外を設定することを想定していないっぽい。MaxRequestsPerChild 相当。
0 (無制限) もしくは 2 以上に設定することでプロセスの終了・生成の分の負荷が減らすことができるが、 ほかのユーザー(クライアント接続)とプロセスを共有するため、 脆弱性を突かれた場合のリスクが増大する。
参考:
- LoginProcess High-performance mode - Dovecot Wiki
vsz_limit
サービスの 1 プロセスあたりの最大メモリ量 (データセグメントサイズ)。
ulimit -d の値に相当。
備考
anvil サービスのクライアント数
pop3-login, imap-login, managesieve-login プロセスは、
anvil サービスを利用する。よって、anvil サービスの
client_limit の値は全 *-login プロセスの最大数以上に設定する必要がある。
TLS(SSL) / Proxy / Director の制限設定
POP3 / IMAP / ManageSieve プロトコルの TLS (SSL) / Proxy / Director は
pop3-login, imap-login, managesieve-login プロセスで実行される。
同機能を利用する場合は pop3-login, imap-login, managesieve-login
サービスの設定に注意。
LMTP プロトコルは TLS (SSL) に非対応、Proxy / Director は
lmtp プロセスで実行される。