IBM SPSS Modeler Serverのセッション管理を解説 - プロセスとログから理解する内部動作
はじめに
IBM SPSS Modeler Serverを運用する上で、セッション管理の仕組みを理解することは非常に重要です。特に以下のような場面で役立ちます:
- パフォーマンスチューニング時のリソース使用状況の把握
- 同時接続数の制限やセッション数の監視
- トラブルシューティング時のプロセス状態の確認
本記事では、実際にModeler Serverを操作しながら、セッションがどのように生成・管理・終了されるかを検証し、その内部動作を明らかにします。
想定読者
- IBM SPSS Modeler Serverの運用担当者
- システム管理者
- Modeler Serverのパフォーマンス最適化に関心がある方
検証環境
- 製品: IBM SPSS Modeler Server 19.0
- OS: Ubuntu 24.04.2 LTS
- ユーザー: dsuser1
-
インストールパス:
/usr/IBM/SPSS/ModelerServer/19.0/
セッション管理の基本概念
セッションとは
Modeler Serverにおける「セッション」とは、クライアントからの接続に対して割り当てられる作業単位です。各セッションは独立したプロセスとして動作し、以下の特徴があります:
- 1ストリーム = 1セッション = 1プロセスの関係
- セッションIDとプロセスID(PID)は一致
- ストリームを開いている間、セッションは維持される
プロセス構造
Modeler Serverは以下のプロセス構造を持ちます:
-
親プロセス: サーバー本体(
root権限で起動) - 子プロセス: 各セッション(ユーザー権限で起動)
検証1: サーバー起動時の初期状態
手順
Modelerサーバーのみが起動している状態でプロセスを確認します。
結果
# ps -ef | grep modeler
root 19824 9 0 11:50 ? 00:00:00 /usr/IBM/SPSS/ModelerServer/19.0/modelersrv_19_0 -server
考察
サーバー起動時は、親プロセス(PID: 19824)のみが起動しています。このプロセスは:
-
root権限で動作 - クライアントからの接続を待ち受ける役割
- セッション管理を担当
この時点ではまだセッションプロセスは存在しません。
検証2: サーバー接続時の一時セッション
手順
ストリームを開かずに、Modeler Serverにdsuser1で接続のみを行います。
結果
2026-03-03 13:00:27,263 19824 0x79e7cdd17d00 INFO [Modeler Runtime] SDLServerApp AEQMC0075I: Accepted connection from ::ffff:172.26.16.1.:61028
2026-03-03 13:00:27,930 4924 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSessionServer AEQMC0034I: Login succeeded for user: dsuser1
2026-03-03 13:00:27,934 4924 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0007I: Session 4924 (dsuser1@::ffff:172.26.16.1.:61028) started
2026-03-03 13:00:27,934 4924 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0123I: User name: dsuser1
2026-03-03 13:00:28,942 4924 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0032I: Session 4924 ended
ログの解説
| ログメッセージ | 意味 |
|---|---|
AEQMC0075I: Accepted connection |
クライアントからの接続を受け付け |
AEQMC0034I: Login succeeded |
ユーザー認証成功 |
AEQMC0007I: Session started |
セッション開始(PID: 4924) |
AEQMC0123I: User name |
ログインユーザー情報 |
AEQMC0032I: Session ended |
セッション終了 |
考察
接続時に一時的なセッション(PID: 4924)が作成され、約1秒後に自動的に終了しています。この一時セッションの役割は:
- 認証処理: ユーザー資格情報の検証
- 接続確認: サーバーとの通信確立
- 初期化処理: クライアント情報の登録
ストリームを開いていないため、作業用セッションは作成されず、認証セッションのみで完結します。
検証3: ストリーム操作とセッションのライフサイクル
手順1: ストリームを開く
ストリームを1つ開きます。
図2: ストリームを開いた状態
結果1: プロセスの確認
# ps -ef | grep modeler
dsuser1 5889 19824 0 13:04 ? 00:00:00 /usr/IBM/SPSS/ModelerServer/19.0/modelersrv_19_0 -server
root 19824 9 0 11:50 ? 00:00:00 /usr/IBM/SPSS/ModelerServer/19.0/modelersrv_19_0 -server
新しいプロセス(PID: 5889)がdsuser1権限で起動しています。
結果2: ログの確認
2026-03-03 13:04:25,361 19824 0x79e7cdd17d00 INFO [Modeler Runtime] SDLServerApp AEQMC0075I: Accepted connection from ::ffff:172.26.16.1.:49677
2026-03-03 13:04:25,522 5889 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSessionServer AEQMC0034I: Login succeeded for user: dsuser1
2026-03-03 13:04:25,525 5889 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0007I: Session 5889 (dsuser1@::ffff:172.26.16.1.:49677) started
2026-03-03 13:04:25,525 5889 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0123I: User name: dsuser1
セッション5889が開始され、ログインユーザーdsuser1で動作していることが確認できます。
手順2: ストリーム内で操作を実行
データソースノードのプロパティを編集し、データプレビューを実行します。
結果: ファイルアクセスのログ
2026-03-03 13:13:19,428 5889 0x79e7cdd17d00 INFO [Modeler Runtime] SDLDataFile AEQMC0096I: Attempting to open/create file /usr/IBM/SPSS/ModelerServer/19.0/demos/DRUG1n
2026-03-03 13:13:19,428 5889 0x79e7cdd17d00 INFO [Modeler Runtime] SDLDataFile AEQMC0097I: File 1 (/usr/IBM/SPSS/ModelerServer/19.0/demos/DRUG1n) opened
2026-03-03 13:13:20,974 5889 0x79e7cdd17d00 INFO [Modeler Runtime] SDLDataFile AEQMC0095I: File 1 closed
2026-03-03 13:13:20,975 5889 0x79e7cdd17d00 INFO [Modeler Runtime] SDLDataFile AEQMC0096I: Attempting to open/create file /usr/IBM/SPSS/ModelerServer/19.0/demos/DRUG1n
2026-03-03 13:13:20,975 5889 0x79e7cdd17d00 INFO [Modeler Runtime] SDLDataFile AEQMC0097I: File 2 (/usr/IBM/SPSS/ModelerServer/19.0/demos/DRUG1n) opened
2026-03-03 13:13:21,035 5889 0x79e7cdd17d00 INFO [Modeler Runtime] SDLDataFile AEQMC0095I: File 2 closed
考察: セッション内での処理
ファイルアクセスなどをするプロパティの編集、データのプレビュー、ストリームの実行などを行うと、セッションプロセス(PID: 5889)内で実行されます。ログから以下のことが分かります:
- ファイルハンドルの管理(File 1, File 2...)
- 同じファイルでも操作ごとに開閉が行われる
- 操作がセッションIDと紐付けられている
手順3: ストリームを閉じる
ストリームを閉じます。
図4: ストリームを閉じた後
結果: プロセスの終了
# ps -ef | grep modeler
root 19824 9 0 11:50 ? 00:00:00 /usr/IBM/SPSS/ModelerServer/19.0/modelersrv_19_0 -server
PID: 5889のプロセスが消滅しました。
結果: ログの確認
2026-03-03 13:25:25,238 5889 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0032I: Session 5889 ended
考察: セッションのライフサイクル
セッションのライフサイクルは以下の通りです:
- 生成: ストリームを開く → セッションプロセス起動
- 維持: ストリームが開いている間、セッション継続
- 終了: ストリームを閉じる → セッションプロセス終了
このことから、ストリームとセッションは1対1の関係であることが確認できます。
検証4: 複数ストリームの同時実行
手順
3つのストリームを同時に開きます。
結果: プロセスの確認
# ps -ef | grep modeler
dsuser1 11414 19824 1 13:27 ? 00:00:00 /usr/IBM/SPSS/ModelerServer/19.0/modelersrv_19_0 -server
dsuser1 11433 19824 1 13:27 ? 00:00:00 /usr/IBM/SPSS/ModelerServer/19.0/modelersrv_19_0 -server
dsuser1 11448 19824 1 13:27 ? 00:00:00 /usr/IBM/SPSS/ModelerServer/19.0/modelersrv_19_0 -server
root 19824 9 0 11:50 ? 00:00:00 /usr/IBM/SPSS/ModelerServer/19.0/modelersrv_19_0 -server
3つの独立したプロセス(PID: 11414, 11433, 11448)が起動しています。
結果: ログの確認
2026-03-03 13:27:21,841 19824 0x79e7cdd17d00 INFO [Modeler Runtime] SDLServerApp AEQMC0075I: Accepted connection from ::ffff:172.26.16.1.:54839
2026-03-03 13:27:22,607 11414 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSessionServer AEQMC0034I: Login succeeded for user: dsuser1
2026-03-03 13:27:22,610 11414 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0007I: Session 11414 (dsuser1@::ffff:172.26.16.1.:54839) started
2026-03-03 13:27:22,610 11414 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0123I: User name: dsuser1
2026-03-03 13:27:24,342 19824 0x79e7cdd17d00 INFO [Modeler Runtime] SDLServerApp AEQMC0075I: Accepted connection from ::ffff:172.26.16.1.:61529
2026-03-03 13:27:24,794 11433 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSessionServer AEQMC0034I: Login succeeded for user: dsuser1
2026-03-03 13:27:24,797 11433 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0007I: Session 11433 (dsuser1@::ffff:172.26.16.1.:61529) started
2026-03-03 13:27:24,797 11433 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0123I: User name: dsuser1
2026-03-03 13:27:25,562 19824 0x79e7cdd17d00 INFO [Modeler Runtime] SDLServerApp AEQMC0075I: Accepted connection from ::ffff:172.26.16.1.:61533
2026-03-03 13:27:26,073 11448 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSessionServer AEQMC0034I: Login succeeded for user: dsuser1
2026-03-03 13:27:26,076 11448 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0007I: Session 11448 (dsuser1@::ffff:172.26.16.1.:61533) started
2026-03-03 13:27:26,076 11448 0x79e7cdd17d00 INFO [Modeler Runtime] SDLSession AEQMC0123I: User name: dsuser1
考察: リソース管理の観点
複数ストリームの同時実行から、以下のことが分かります:
- 独立性: 各セッションは完全に独立したプロセスとして動作
- 並列性: 複数セッションが同時に実行可能
- リソース消費: ストリーム数 × セッションあたりのリソース消費
運用上の注意点
- メモリ消費: セッション数に比例してメモリ使用量が増加
- CPU使用率: 各セッションが独立してCPUを使用
まとめ
検証で明らかになったこと
本検証により、IBM SPSS Modeler Serverのセッション管理について以下のことが明らかになりました:
-
セッションとプロセスの関係
- 1ストリーム = 1セッション = 1プロセス
- セッションIDとプロセスIDは一致
-
セッションのライフサイクル
- ストリームを開く → セッション生成
- ストリームが開いている間 → セッション維持
- ストリームを閉じる → セッション終了
-
一時セッションの存在
- 接続時に認証用の一時セッションが作成される
- 認証完了後、すぐに終了する
-
複数セッションの独立性
- 各セッションは独立したプロセスとして動作
- 並列実行が可能
実務での活用ポイント
パフォーマンス監視
# アクティブなセッション数を確認
ps -ef | grep modelersrv_19_0 | grep -v root | wc -l
# 各セッションのリソース使用状況を確認
ps aux | grep modelersrv_19_0
トラブルシューティング
- パフォーマンス低下: 同時セッション数とリソース使用状況を確認
容量計画
- 想定同時ユーザー数 × セッションあたりのメモリ使用量でメモリ要件を算出
- ピーク時のセッション数を監視し、適切なリソースを確保






