MathLM の監視

MonitorLM とは?

MonitorLM は使用可能なライセンス数およびチェックアウトされているライセンス数,完全修飾ドメイン名,ライセンスをチェックアウトしているユーザ名等の情報を与える.MonitorLM は出力をターミナルに送ったり,Webのブラウザを開いたり,ファイルに書き込んだりすることができる.MonitorLM の出力は環境設定設定ファイルによってカスタマイズすることができる.MonitorLM は自動的にIPv4およびIPv6の環境をサポートする.

MonitorLM の起動

MonitorLM を起動するためには,MathLM がインストールされている場所にディレクトリを変更し,.\monitorlm servername(Windows),あるいは./monitorlm servername(Linux,Mac OS X)とタイプする.monitorlmコマンドの第1引数には MathLM を起動しているライセンスサーバの名前を指定する.明示的にサーバ名を指定しなかったら,デフォルトでローカルマシン名が選ばれる.

MonitorLM コマンドラインオプション

monitorlmコマンドで使えるオプションには以下のようなものがある.オプションを指定するための文法は,monitorlm である.

-file file出力が向けられるファイルを指定する
-format fMonitorLM の出力形式を指定する
-localtime時間に関するすべての参照で,グリニッジ標準時ではなく現地時間を使うよう指定する
-template fileMonitorLM の出力のテンプレートファイルを指定する

monitorlmコマンドラインオプション

-fileが設定されていない場合,MonitorLMstdoutに書き出す.

以下は-formatで可能な3つの出力形式である.

text出力をテキスト形式でstdoutに書き出す(Linuxのデフォルト)
html出力をHTML形式で送り,Webブラウザを開く(WindowsとMac OS Xのデフォルト)
cgi出力をHTML形式でstdoutに送る

-format出力形式

MonitorLM がWebブラウザにより直接起動されたらcgi形式が使われる.

-formattextにすると MonitorLM の出力は以下のようになる.

Online help is available at
http://reference.wolfram.com/network

MathLM Version 8.0
MathLM Server hostname.domain.com
Date : Thursday, October 17 2010 21:11:59
    
License Usage Summary:

                            License    Total    Total
Program                        Class    in Use    Authorized
------------------------------------------------------

Mathematica                    A        2        20
MathKernel                    A        4        40


Sub Mathematica                A        0        80
Sub MathKernel                A        0        80

Licenses in Use:

                            License
Program            Version        Class    Username    Hostname            Duration
----------------------------------------------------------------------------
Mathematica        7.0            A        username    client1.domain.com    08:49
Mathematica        8.0            A        username    client2.domain.com    06:33
MathKernel        7.0            A        username    client1.domain.com    08:44
MathKernel        8.0            A        username    client2.domain.com    06:52
MathKernel        8.0            A        username    client2.domain.com    06:52
MathKernel        8.0            A        username    client2.domain.com    06:30

-formathtmlにしてWebブラウザで見ると,MonitorLM の出力は以下のようになる.

-formatcgiにすると,MonitorLM の出力はHTML形式でstdoutに送られる点に注意のこと.以下は,出力がWebのブラウザで表示されたところである.

MonitorLM の出力のカスタマイズ

テンプレートファイルを編集することにより,MonitorLM からの出力の内容と形式をカスタマイズすることができる.テンプレートファイルはテキストファイルで,以下のような種類の要素を含むことができる.

  • 定数タグこのタグは,現在の日付のように,MonitorLM の実行中に変化せずライセンスに依存しないデータを表す.このカテゴリのタグの名前はすべてCONSTで始まる.
  • 変数タグこのタグは定数タグのラッパーとして働く.現在の MathLM ユーザの表のように,連続して出力されるデータの形式を定義するのに便利である.テンプレートファイルを読みやすくするという利点もある.このカテゴリのタグの名前はすべてVARで始まる.
  • プロセス依存タグこのタグの値はどのWolframシステムプロセスが表示されているかに依存し,プロセス所有者のユーザ名やIPアドレスのようなデータが含まれる.このカテゴリのタグの名前はすべてPROCで始まる.
  • 繰返しタグこのタグは未知数のライセンスに関する情報のためのプレースホルダの役目を果たす.前もってサイズが決められていない唯一のタグである.チェックアウトの行のみが繰り返される.1ライセンスにつきチェックアウトの行は1行のみである.このカテゴリのタグはすべてREPで始まる.
    • テキストラッパーこれはユーザが,プレゼンテーションやフォーマット用にタグをラップすることができるテキストである.

    テンプレートファイルの各タグには %var# という形式が含まれている.それぞれ以下の意味を持つ.

  • var は変数を表し,その値はサーバによって提供される.
    • # は変数 var の表示形式を定義する数字である.

    %var# コマンドに加え,テンプレートファイルにはカッコ,ダッシュ,クォーテーションマークや任意のコメントのようなテキストを入れることもできる.テキストはフォーマットの目的で,サーバメッセージにコメントやセパレータを入れるために使うことができる.文字列に含まれたテキストはすべて,以下の2つの例外を除いて文字通りサーバメッセージに現れる.2つの例外とは,ダブルクォート(")を使う代りに%qを使うことと,パーセント記号(%)の代りに%%を使うことである.

定義済みの定数タグ

以下はテンプレートファイルに入れることのできるタグ名および可能なファイル形式に対する数値を示した2つの表である.

日付の定数タグ

以下は MonitorLM の日付の定数タグである.

タグ名
可能な値
説明
%CONST_DATE_D#[1...31] 日付
%CONST_DATE_W#1 数字 [ 1 ... 7 ] 2 省略形 [ Sun ... Sat ] 3 完全表記 [ Sunday ... Saturday ] 曜日
%CONST_DATE_M#1 数字 [ 1 ... 12 ] 2 省略形 [ Jan ... Dec ] 3 完全表記 [ January ... December ]
%CONST_DATE_Y#1 2桁 [ 10 ] 2 4桁 [ 2010 ]
%CONST_DATE_T#1 12時間 [ 10:20:15 ] 時間

MonitorLM 日付の定数タグ

サーバおよびプロセスの定数タグ

以下は MonitorLM のサーバおよびプロセスの定数タグである.

タグ名
説明
%CONST_SERVER_IPMathLM のIPアドレス
%CONST_SERVER_HOSTMathLM のホスト名
%CONST_SERVER_DOMAINMathLM のドメイン
%CONST_SERVER_FQDNMathLM の完全修飾ドメイン名
%CONST_SERVER_VERSIONMathLM のバージョン
%CONST_CA_FE_AUTHORIZED許可されたクラスAのフロントエンドの数
%CONST_CA_SUB_FE_AUTHORIZED許可されたクラスAのサブフロントエンドプロセスの数
%CONST_CB_FE_AUTHORIZED許可されたクラスBのフロントエンドの数
%CONST_CB_SUB_FE_AUTHORIZED許可されたクラスBのサブフロントエンドプロセスの数
%CONST_TOTAL_FE_AUTHORIZED許可されたフロントエンドの総数
%CONST_TOTAL_SUB_FE_AUTHORIZED許可されたサブフロントエンドプロセスの総数
%CONST_CA_KE_AUTHORIZED許可されたクラスAのカーネルの数
%CONST_CA_SUB_KE_AUTHORIZED許可されたクラスAのサブカーネルプロセスの数
%CONST_CB_KE_AUTHORIZED許可されたクラスBのカーネルの数
%CONST_CB_SUB_KE_AUTHORIZED許可されたクラスBのサブカーネルプロセスの数
%CONST_TOTAL_KE_AUTHORIZED許可されたカーネルの総数
%CONST_TOTAL_SUB_KE_AUTHORIZED許可されたサブカーネルプロセスの総数
%CONST_CA_FE_AVAILABLE使用可能なクラスAのフロントエンドの数
%CONST_CA_SUB_FE_AVAILABLE使用可能なクラスAのサブフロントエンドプロセスの数
%CONST_CB_FE_AVAILABLE使用可能なクラスBのカーネルの数
%CONST_CB_SUB_FE_AVAILABLE使用可能なクラスBのサブカーネルプロセスの数
%CONST_TOTAL_FE_AVAILABLE使用可能なカーネルの総数
%CONST_TOTAL_SUB_FE_AVAILABLE使用可能なサブフロントエンドプロセスの総数
%CONST_CA_KE_AVAILABLE使用可能なクラスAのカーネルの数
%CONST_CA_SUB_KE_AVAILABLE使用可能なクラスAのサブカーネルプロセスの数
%CONST_CB_KE_AVAILABLE使用可能なクラスBのカーネルの数
%CONST_CB_SUB_KE_AVAILABLE使用可能なクラスBのサブカーネルプロセスの数
%CONST_TOTAL_KE_AVAILABLE使用可能なカーネルの総数
%CONST_TOTAL_SUB_KE_AVAILABLE使用可能なサブカーネルプロセスの総数
%CONST_CA_FE_OUT使用中のクラスAのフロントエンドの数
%CONST_CA_SUB_FE_OUT使用中のクラスAのサブフロントエンドプロセスの数
%CONST_CB_FE_OUT使用中のクラスBのフロントエンドの数
%CONST_CB_SUB_FE_OUT使用中のクラスBのサブフロントエンドプロセスの数
%CONST_TOTAL_FE_OUT使用中のフロントエンドの総数
%CONST_TOTAL_SUB_FE_OUT使用中のサブフロントエンドプロセスの総数
%CONST_CA_KE_OUT使用中のクラスAのカーネルの数
%CONST_CA_SUB_KE_OUT使用中のクラスAのサブカーネルプロセスの数
%CONST_CB_KE_OUT使用中のクラスBのカーネルの数
%CONST_CB_SUB_KE_OUT使用中のクラスBのサブカーネルプロセスの数
%CONST_TOTAL_KE_OUT使用中のカーネルの総数
%CONST_TOTAL_SUB_KE_OUT使用中のサブカーネルプロセスの総数

MonitorLM サーバおよびプロセスの定数タグ

カスタマイズ可能な変数タグ

以下は MonitorLM のカスタマイズ可能な変数タグである.

タグ名
可能な値
説明
%VAR_DATE_AMPM"A.M." "P.M." 時間を表示する際に,a.m.,p.m.に使うテキストを指定する
%VAR_MPROCESS"Mathematica" "MathKernel" "SubMathematica" "SubMathKernel" Wolframシステムプロセスのタイトル.クォーテーションの中の最初の文字列はフロントエンドのタイトル,2番目の文字列はカーネルのタイトル,3番目の文字列はサブフロントエンドプロセスのタイトル,4番目の文字列はサブカーネルプロセスのタイトルである
%VAR_LIC_CLASS"Class A" "Class B" 各ライセンスクラスのラベル
%VAR_CA_AUTHORIZED_HEADER"Class A Authorized \t Front End \t Kernel" 許可されたクラスAライセンス数のヘッダ.定義済みの定数タグ%CONST_CA_FE_AUTHORIZED%CONST_CA_KE_AUTHORIZEDとともに使う
%VAR_CA_SUB_AUTHORIZED_HEADER"Class A Authorized \t Front End \t Kernel" 許可されたクラスAサブプロセスライセンス数のヘッダ.定義済みの定数タグ%CONST_CA SUB_FE_AUTHORIZED%CONST_CA SUB_KE_AUTHORIZEDとともに使う
%VAR_CB_AUTHORIZED_HEADER"Class B Authorized \t Front End \t Kernel" 許可されたクラスBライセンス数のヘッダ.定義済みの定数タグ%CONST_CB_FE_AUTHORIZED%CONST_CB_KE_AUTHORIZEDとともに使う
%VAR_CB_SUB_AUTHORIZED_HEADER"Class B Authorized \t Front End \t Kernel" 許可されたクラスBサブプロセスライセンス数のヘッダ.定義済みの定数タグ%CONST_CB_SUB FE_AUTHORIZED%CONST_CB_SUB KE_AUTHORIZEDとともに使う
%VAR_TOTAL_AUTHORIZED_HEADER"Total Authorized \t Front End \t Kernel" 許可されたライセンス総数のヘッダ.定義済みの定数タグ%CONST_TOTAL_FE_AUTHORIZEDCONST_TOTAL_KE_AUTHORIZEDとともに使う
%VAR_TOTAL_SUB_AUTHORIZED_HEADER"Total Authorized \t Front End \t Kernel" 許可されたサブプロセスライセンス総数のヘッダ.定義済みの定数タグ%CONST_TOTAL_SUB FE_AUTHORIZED%CONST_TOTAL_SUB KE_AUTHORIZEDとともに使う
%VAR_CA_CHECKEDOUT_HEADER"Class A Licenses in Use\nUsername \t Hostname \t Program \t Slot # \t Duration" 使用中のクラスAライセンスについての情報のヘッダ.繰返しタグ%REP_CA_CHECKOUT_LINEと使う
%VAR_CA_SUB_CHECKEDOUT_HEADER"Class A Licenses in Use\nUsername \t Hostname \t Program \t Slot # \t Duration" 使用中のクラスAサブプロセスライセンスについての情報ヘッダ.繰り返しタグ%REP_CA_CHECKOUT_LINEと使う
%VAR_CB_CHECKEDOUT_HEADER"Class B Licenses in Use\nUsername \t Hostname \t Program \t Slot # \t Duration" 使用中のクラスBライセンスについての情報のヘッダ.繰返しタグ%REP_CB_CHECKOUT_LINEと使う
%VAR_CB_SUB_CHECKEDOUT_HEADER"Class B Licenses in Use\nUsername \t Hostname \t Program \t Slot # \t Duration" 使用中のクラスBサブプロセスライセンスについての情報のヘッダ.繰返しタグ%REP_CB_SUB_CHECKOUT_LINEと使う
%VAR_CHECKEDOUT_HEADER"Licenses in Use\nUsername \t Hostname \t Program \t License Class \t Slot # \t Duration" 使用中のすべてのライセンスに関する情報のヘッダ.繰返しタグ%REP_GENERAL_CHECKOUT_LINEとともに使う
%VAR_SUB_CHECKEDOUT_HEADER"Licenses in Use\nUsername \t Hostname \t Program \t License Class \t Slot # \t Duration" 使用中のすべてのサブプロセスライセンスに関する情報のヘッダ.繰返しタグ%REP_GENERAL_SUB CHECKOUT_LINEとともに使う

MonitorLM カスタマイズ可能な変数タグ

注:このセクションで提供する文字列は,デフォルトの設定ではなく可能な値の例である.これらのタグを使うときは,自分のテンプレートで定義しなければならない.

プロセス依存タグ

次は MonitorLM のプロセス依存タグである.

タグ名
説明
%PROC_UIDWolframシステムプロセス所有者のユーザID.
%PROC_USERWolframシステムプロセス所有者のユーザ名
%PROC_IPWolframシステムプロセスを使うマシンのIPアドレス
%PROC_HOSTWolframシステムプロセスを使うマシンのホスト名
%PROC_DOMAINWolframシステムプロセスを使うマシンのドメイン
%PROC_FQDNWolframシステムプロセスを使うマシンの完全修飾ドメイン名
%PROC_SLOTNUMWolframシステムプロセスのスロット番号
%PROC_VERSIONクライアントのバージョン
%PROC_DURATIONクライアントが使い始めてからの時間

MonitorLM プロセス依存タグ

繰返しタグ

次は MonitorLM の繰返しタグである.

タグ名
可能な値
説明
%REP_CA_CHECKOUT_LINE"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %PROC_SLOTNUM \t %PROC_DURATION\n" クラスAのチェックアウトライン.使用中のクラスAプロセスをリストする表あるいはブロックの各行の形式を指定する.カスタマイズ可能な変数タグの%VAR_CA_CHECKEDOUT_HEADERに当たる
%REP_CA_SUB_CHECKOUT_LINE"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %PROC_SLOTNUM \t %PROC_DURATION\n" クラスAのサブプロセスチェックアウトライン.使用中のクラスAサブプロセスをリストする表あるいはブロックの各行の形式を指定する.カスタマイズ可能な変数タグの%VAR_CA_SUB_CHECKEDOUT_HEADERに当たる
%REP_CB_CHECKOUT_LINE"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %PROC_SLOTNUM \t %PROC_DURATION\n" クラスBのチェックアウトライン.使用中のクラスBプロセスをリストする表あるいはブロックの各行の形式を指定する.カスタマイズ可能な変数タグ%VAR_CB_CHECKEDOUT_HEADERに当たる
%REP_CB_SUB_CHECKOUT_LINE"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %PROC_SLOTNUM \t %PROC_DURATION\n" クラスBのサブプロセスチェックアウトライン.使用中のクラスBサブプロセスをリストする表あるいはブロックの各行の形式を指定する.カスタマイズ可能な変数タグ%VAR_CB_SUB_CHECKEDOUT_HEADERに当たる
%REP_GENERAL_CHECKOUT_LINE"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %VAR_LIC_CLASS \t %PROC_SLOTNUM \t %PROC_DURATION\n" 一般的なチェックアウトライン.クラスを分けたくなければこれを使う.カスタマイズ可能な変数タグ%VAR_CHECKEDOUT_HEADERに当たる
%REP_GENERAL_SUB_CHECKOUT_LINE"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %VAR_LIC_CLASS \t %PROC_SLOTNUM \t %PROC_DURATION\n" 一般的なサブプロセスチェックアウトライン.クラスを分けたくなければこれを使う.カスタマイズ可能な変数タグ%VAR_SUB_CHECKEDOUT_HEADERに当たる

MonitorLM 繰返しタグ

注:このセクションで提供されている文字列は可能な値の例であり,デフォルトの設定ではない.これらのタグを使うためには,自分のテンプレートでそれを定義しなければならない.

注:テンプレートファイルでは,キーワード%TEXT(前後に空白がない)のみが含まれる行の後に,MonitorLM の出力を構成するテキストラッパーとタグを置かなければならない.カスタマイズされた変数タグの定義は%TEXT行の前に置く.カスタマイズされた変数タグがない場合は,%TEXT行がファイルの最初の行になる.

サンプルと動作

これは,許可されたプロセス数,使用可能なプロセス数,使用中のプロセス数を示す簡単なテキストファイルである.この例では変数定義のタグを定義する必要はない.

結果の出力は以下のような形式になる.

次はもう少し高度な例である.この例は,使用中のプロセスとカスタマイズされた変数タグもリストしている点を除いては上の例と等しい.

結果の出力は次のような形式になる.

次はHTML出力の例である.例えば MonitorLM の出力をWebのブラウザで見たいときに便利である.

結果としての出力は次のような形式になる.