Verticaは、クライアントからの最大同時接続数がデフォルト「50」に設定されているため、利用者からの同時接続が多いシステムでは、上限値の変更をお薦めします。最大同時接続数は、MaxClientSessionsパラメータで、制御することができます。MaxClientSessionsパラメータを変更する場合は、以下の点を参考にしてください。
MaxClientSessionsパラメータの注意事項
・複数ノード構成の場合は、ノード単位に設定が可能です。DBレベルの変更をする場合、事前にノード単位に設定値が変更されていると、そのノードは現在の設定値を引継ぎます。
・上限値に達した場合でも、スーパユーザ(dbadmin)は接続可能です。
・上限値に達した場合でも、スーパユーザ(dbadmin)は接続可能です。
MaxClientSessionsパラメータ変更時の注意事項
・パラメータ変更後、即有効になります。(Verticaの再起動は不要)
・現在接続中のユーザには影響がなく、次回Verticaに接続するタイミングから有効になります。
・現在接続中のユーザには影響がなく、次回Verticaに接続するタイミングから有効になります。
実行例
3ノード構成で、MaxClientSessionsパラメータを変更した場合の実行例をご紹介します。1) MaxClientSessionsの設定確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
dbadmin=> SELECT * FROM CONFIGURATION_PARAMETERS WHERE parameter_name='MaxClientSessions'; -[ RECORD 1 ]-----------------+--------------------------------------------------------------------------------- node_name | ALL parameter_name | MaxClientSessions current_value | 50 ★全ノード 「50」に設定 restart_value | 50 database_value | 50 default_value | 50 current_level | DATABASE restart_level | DATABASE is_mismatch | f groups | allowed_levels | NODE, DATABASE superuser_only | f change_under_support_guidance | f change_requires_restart | f description | Maximum number of client sessions; in addition five dbadmin sessions are allowed |
2) クライアントからの接続数確認
1 2 3 4 5 6 7 |
dbadmin=> SELECT node_name, count(node_name) FROM sessions GROUP BY node_name; node_name | count ------------------+------- v_sfadb_node0001 | 50 ★現在ノード1は 「50」セッション接続 v_sfadb_node0002 | 50 ★現在ノード2は 「50」セッション接続 v_sfadb_node0003 | 50 ★現在ノード3は 「50」セッション接続 (3 rows) |
3) MaxClientSessions超過時のエラー確認
1 2 3 4 5 6 7 8 9 10 11 12 |
$ vsql -U test_user; ★非スーパーユーザで接続 vsql: FATAL 4060: New session rejected due to limit, already 50 sessions active ★「50」の上限に達してエラー $ vsql ★スーパーユーザで接続 Password: Welcome to vsql, the Vertica Analytic Database interactive terminal. Type: \h or \? for help with vsql commands \g or terminate with semicolon to execute query \q to quit dbadmin=> ★接続可能 |
4) DBのMaxClientSessions変更
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
dbadmin=> SELECT SET_CONFIG_PARAMETER('MaxClientSessions', 100); SET_CONFIG_PARAMETER ---------------------------- Parameter set successfully (1 row) dbadmin=> SELECT node_name,parameter_name,current_value,database_value,default_value,description FROM CONFIGURATION_PARAMETERS WHERE parameter_name='MaxClientSessions'; -[ RECORD 1 ]--+--------------------------------------------------------------------------------- node_name | ALL parameter_name | MaxClientSessions current_value | 100 ★全ノード 「100」に変更 database_value | 100 default_value | 50 description | Maximum number of client sessions; in addition five dbadmin sessions are allowed |
※DBレベルで MaxClientSessionsを変更すると、個別サーバーあたりの設定値が変更になります。今回の場合は「ノード1: 100、ノード2: 100、ノード3: 100」と変更になり、3ノード合計で「300」までは、クライアントから接続可能になります。
5) クライアントからの接続数確認
1 2 3 4 5 6 7 |
dbadmin=> SELECT node_name,count(node_name) FROM sessions GROUP BY node_name; node_name | count ------------------+------- v_sfadb_node0001 | 50 ★現在ノード1は 「50」セッション接続 v_sfadb_node0002 | 50 ★現在ノード2は 「50」セッション接続 v_sfadb_node0003 | 50 ★現在ノード3は 「50」セッション接続 (3 rows) |
6) 接続確認
1 2 3 4 5 6 7 8 9 |
$ vsql -U test_user; ★非スーパーユーザで接続 Timing is on. Welcome to vsql, the Vertica Analytic Database interactive terminal. Type: \h or \? for help with vsql commands \g or terminate with semicolon to execute query \q to quit test_user=> ★接続可能 |
参考情報
セッションを強制的に終了する方法http://vertica-tech.ashisuto.co.jp/session-close
CONFIGURATION_PARAMETERS
https://my.vertica.com/docs/9.1.x/HTML/index.htm#Authoring/SQLReferenceManual/SystemTables/MONITOR/CONFIGURATION_PARAMETERS.htm
検証バージョンについて
この記事の内容はVertica 9.1で確認しています。- 投稿タグ
- 同時接続, 最大同時, MaxClientSessions, 接続数