Verticaは、クライアントからの最大同時接続数がデフォルト「50」に設定されているため、利用者からの同時接続が多いシステムでは、上限値の変更をお薦めします。最大同時接続数は、MaxClientSessionsパラメータで、制御することができます。MaxClientSessionsパラメータを変更する場合は、以下の点を参考にしてください。
MaxClientSessionsパラメータの注意事項
・複数ノード構成の場合は、ノード単位に設定が可能です。DBレベルの変更をする場合、事前にノード単位に設定値が変更されていると、そのノードは現在の設定値を引継ぎます。
・上限値に達した場合でも、スーパユーザ(dbadmin)は接続可能です。
MaxClientSessionsパラメータ変更時の注意事項
・パラメータ変更後、即有効になります。(Verticaの再起動は不要)
・現在接続中のユーザには影響がなく、次回Verticaに接続するタイミングから有効になります。
実行例
3ノード構成で、MaxClientSessionsパラメータを変更した場合の実行例をご紹介します。
1) MaxClientSessionsの設定確認
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 allowed2) クライアントからの接続数確認
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超過時のエラー確認
$ 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変更
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) クライアントからの接続数確認
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) 接続確認
$ 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=> ★接続可能参考情報
セッションを強制的に終了する方法
https://www.ashisuto.co.jp/cm/analytics-database/session-close.html
CONFIGURATION_PARAMETERS
https://my.vertica.com/docs/9.1.x/HTML/index.htm#Authoring/SQLReferenceManual/SystemTables/MONITOR/CONFIGURATION_PARAMETERS.htm
検証バージョンについて
この記事の内容はVertica 9.1で確認しています。