0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SPSS Modeler Serverのセッションの管理

0
Posted at

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は以下のプロセス構造を持ちます:

  1. 親プロセス: サーバー本体(root権限で起動)
  2. 子プロセス: 各セッション(ユーザー権限で起動)

検証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で接続のみを行います。

Modeler Server接続画面
図1: Modeler Serverへの接続

結果

tail -f server_logging.log|grep -v SDLOptions
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つ開きます。

ストリームを開く
image.png

図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: ログの確認

tail -f server_logging.log|grep -v SDLOptions
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: ストリーム内で操作を実行

データソースノードのプロパティを編集し、データプレビューを実行します。

データ操作
図3: データファイルへのアクセス

結果: ファイルアクセスのログ

tail -f server_logging.log|grep -v SDLOptions
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: ストリームを閉じる

ストリームを閉じます。

ストリームを閉じる
image.png

図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のプロセスが消滅しました。

結果: ログの確認

tail -f server_logging.log|grep -v SDLOptions
2026-03-03 13:25:25,238     5889 0x79e7cdd17d00 INFO  [Modeler Runtime] SDLSession   AEQMC0032I: Session 5889 ended

考察: セッションのライフサイクル

セッションのライフサイクルは以下の通りです:

  1. 生成: ストリームを開く → セッションプロセス起動
  2. 維持: ストリームが開いている間、セッション継続
  3. 終了: ストリームを閉じる → セッションプロセス終了

このことから、ストリームとセッションは1対1の関係であることが確認できます。

検証4: 複数ストリームの同時実行

手順

3つのストリームを同時に開きます。

複数ストリーム
図5: 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)が起動しています。

結果: ログの確認

tail -f server_logging.log|grep -v SDLOptions
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

考察: リソース管理の観点

複数ストリームの同時実行から、以下のことが分かります:

  1. 独立性: 各セッションは完全に独立したプロセスとして動作
  2. 並列性: 複数セッションが同時に実行可能
  3. リソース消費: ストリーム数 × セッションあたりのリソース消費

運用上の注意点

  • メモリ消費: セッション数に比例してメモリ使用量が増加
  • CPU使用率: 各セッションが独立してCPUを使用

まとめ

検証で明らかになったこと

本検証により、IBM SPSS Modeler Serverのセッション管理について以下のことが明らかになりました:

  1. セッションとプロセスの関係

    • 1ストリーム = 1セッション = 1プロセス
    • セッションIDとプロセスIDは一致
  2. セッションのライフサイクル

    • ストリームを開く → セッション生成
    • ストリームが開いている間 → セッション維持
    • ストリームを閉じる → セッション終了
  3. 一時セッションの存在

    • 接続時に認証用の一時セッションが作成される
    • 認証完了後、すぐに終了する
  4. 複数セッションの独立性

    • 各セッションは独立したプロセスとして動作
    • 並列実行が可能

実務での活用ポイント

パフォーマンス監視

# アクティブなセッション数を確認
ps -ef | grep modelersrv_19_0 | grep -v root | wc -l

# 各セッションのリソース使用状況を確認
ps aux | grep modelersrv_19_0

トラブルシューティング

  • パフォーマンス低下: 同時セッション数とリソース使用状況を確認

容量計画

  • 想定同時ユーザー数 × セッションあたりのメモリ使用量でメモリ要件を算出
  • ピーク時のセッション数を監視し、適切なリソースを確保

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?