OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

クライアントからの最大同時接続数を制御する方法

公開日:
更新日:
基本操作
クライアント
#最大同時接続数
#Verticaクライアント

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 allowed

2) クライアントからの接続数確認

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で確認しています。