DBAtlas · データベース運用アトラス

接続数と接続上限を表示

Oracle

SELECT COUNT(*) AS current_sessions FROM v$session WHERE type = 'USER';
SELECT name, value FROM v$parameter WHERE name IN ('processes','sessions');

上限は processes/sessions パラメータ。使用率は resource_limit ビューでも確認できる。

PostgreSQL

SELECT count(*) FROM pg_stat_activity WHERE backend_type = 'client backend';
SHOW max_connections;

pg_stat_activity にはバックグラウンドプロセスも含まれるため、クライアント接続(backend_type = 'client backend')のみをカウントする。superuser_reserved_connections のスロットは管理者用に予約されている。

MySQL

SHOW STATUS LIKE 'Threads_connected';
SHOW VARIABLES LIKE 'max_connections';

Max_used_connections ステータスはピーク値を示す。

SQL Server

SELECT COUNT(*) FROM sys.dm_exec_sessions WHERE is_user_process = 1;
SELECT @@MAX_CONNECTIONS AS configured_max;

@@MAX_CONNECTIONS は理論上の上限。実際の上限はメモリとワーカースレッドに依存する。

MongoDB

db.serverStatus().connections

current、available、totalCreated フィールドを返す。上限は net.maxIncomingConnections で設定する。

Redis

INFO clients
CONFIG GET maxclients

connected_clients は現在の接続数、maxclients は設定された上限(デフォルト 10000)。

DBAtlas で開く →