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 f | MonitorLM の出力形式を指定する |
| -localtime | 時間に関するすべての参照で,グリニッジ標準時ではなく現地時間を使うよう指定する |
| -template file | MonitorLM の出力のテンプレートファイルを指定する |
-fileが設定されていない場合,MonitorLM はstdoutに書き出す.
| text | 出力をテキスト形式でstdoutに書き出す(Linuxのデフォルト) |
| html | 出力をHTML形式で送り,Webブラウザを開く(WindowsとMac OS Xのデフォルト) |
| cgi | 出力をHTML形式でstdoutに送る |
MonitorLM がWebブラウザにより直接起動されたらcgi形式が使われる.
-formatをtextにすると 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
-formatをhtmlにしてWebブラウザで見ると,MonitorLM の出力は以下のようになる.
-formatをcgiにすると,MonitorLM の出力はHTML形式でstdoutに送られる点に注意のこと.以下は,出力がWebのブラウザで表示されたところである.
MonitorLM の出力のカスタマイズ
テンプレートファイルを編集することにより,MonitorLM からの出力の内容と形式をカスタマイズすることができる.テンプレートファイルはテキストファイルで,以下のような種類の要素を含むことができる.
- 定数タグ—このタグは,現在の日付のように,MonitorLM の実行中に変化せずライセンスに依存しないデータを表す.このカテゴリのタグの名前はすべてCONSTで始まる.
- 変数タグ—このタグは定数タグのラッパーとして働く.現在の MathLM ユーザの表のように,連続して出力されるデータの形式を定義するのに便利である.テンプレートファイルを読みやすくするという利点もある.このカテゴリのタグの名前はすべてVARで始まる.
- プロセス依存タグ—このタグの値はどの Mathematica プロセスが表示されているかに依存し,プロセス所有者のユーザ名やIPアドレスのようなデータが含まれる.このカテゴリのタグの名前はすべてPROCで始まる.
- 繰返しタグ—このタグは未知数のライセンスに関する情報のためのプレースホルダの役目を果たす.前もってサイズが決められていない唯一のタグである.チェックアウトの行のみが繰り返される.1ライセンスにつきチェックアウトの行は1行のみである.このカテゴリのタグはすべてREPで始まる.
%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_IP | MathLM のIPアドレス |
| %CONST_SERVER_HOST | MathLM のホスト名 |
| %CONST_SERVER_DOMAIN | MathLM のドメイン |
| %CONST_SERVER_FQDN | MathLM の完全修飾ドメイン名 |
| %CONST_SERVER_VERSION | MathLM のバージョン |
| %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" | Mathematica プロセスのタイトル.クォーテーションの中の最初の文字列はフロントエンドのタイトル,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_AUTHORIZED,CONST_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_UID | Mathematica プロセス所有者のユーザID. |
| %PROC_USER | Mathematica プロセス所有者のユーザ名 |
| %PROC_IP | Mathematica プロセスを使うマシンのIPアドレス |
| %PROC_HOST | Mathematica プロセスを使うマシンのホスト名 |
| %PROC_DOMAIN | Mathematica プロセスを使うマシンのドメイン |
| %PROC_FQDN | Mathematica プロセスを使うマシンの完全修飾ドメイン名 |
| %PROC_SLOTNUM | Mathematica プロセスのスロット番号 |
| %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行がファイルの最初の行になる.
サンプルと動作
これは,許可されたプロセス数,使用可能なプロセス数,使用中のプロセス数を示す簡単なテキストファイルである.この例では変数定義のタグを定義する必要はない.
%TEXT
Time/Date : [%CONST_DATE_T2] [%CONST_DATE_M3 %CONST_DATE_D, %CONST_DATE_Y2]
Front End Processes Authorized: %CONST_TOTAL_FE_AUTHORIZED
Kernel Processes Authorized: %CONST_TOTAL_KE_AUTHORIZED
Front End Processes Available: %CONST_TOTAL_FE_AVAILABLE
Kernel Processes Available: %CONST_TOTAL_KE_AVAILABLE
Front End Processes In Use: %CONST_TOTAL_FE_OUT
Kernel Processes In Use: %CONST_TOTAL_KE_OUT
Time/Date : [00:05:26] [October 20, 2010]
Front End Processes Authorized: 5
Kernel Processes Authorized: 5
Front End Processes Available: 4
Kernel Processes Available: 4
Front End Processes In Use: 1
Kernel Processes In Use: 1
次はもう少し高度な例である.この例は,使用中のプロセスとカスタマイズされた変数タグもリストしている点を除いては上の例と等しい.
# Begin variable tag definitions
%VAR_MPROCESS = "FE" "KE" "SFE" "SKE"
%VAR_TOTAL_CHECKEDOUT_HEADER = "Slot\t Program\t User\t Host\n"
%REP_GENERAL_CHECKOUT_LINE = "%PROC_SLOTNUM\t %VAR_MPROCESS\t %PROC_USER\t %PROC_HOST\n"
%TEXT
Time/Date : [%CONST_DATE_T2] [%CONST_DATE_M3 %CONST_DATE_D, %CONST_DATE_Y2]
Front End Processes Authorized: %CONST_TOTAL_FE_AUTHORIZED
Kernel Processes Authorized: %CONST_TOTAL_KE_AUTHORIZED
Front End Processes Available: %CONST_TOTAL_FE_AVAILABLE
Kernel Processes Available: %CONST_TOTAL_KE_AVAILABLE
Front End Processes In Use: %CONST_TOTAL_FE_OUT
Kernel Processes In Use: %CONST_TOTAL_KE_OUT
%VAR_TOTAL_CHECKEDOUT_HEADER
%REP_GENERAL_CHECKOUT_LINE
Time/Date : [00:05:26] [October 20, 2010]
Front End Processes Authorized: 5
Kernel Processes Authorized: 5
Front End Processes Available: 4
Kernel Processes Available: 4
Front End Processes In Use: 1
Kernel Processes In Use: 1
Slot Program User Host
6 FE username hostname
1 KE username hostname
次はHTML出力の例である.例えば MonitorLM の出力をWebのブラウザで見たいときに便利である.
%VAR_MPROCESS = "FE" "KE" "SFE" "SKE"
%VAR_TOTAL_CHECKEDOUT_HEADER = "<TR><TD><B>Slot</B></TD> <TD><B>Program</B></TD> <TD><B>User</B></TD> <TD><B>FQDN</B></TD> </TR>\n"
%REP_GENERAL_CHECKOUT_LINE = "<TR> <TD>%PROC_SLOTNUM</TD> <TD>%VAR_MPROCESS</TD> <TD>%PROC_USER</TD> <TD>%PROC_FQDN</TD> </TR>\n"
%TEXT
<HTML>
<HEAD> <TITLE> MathLM Status </TITLE> </HEAD>
<BODY>
<TABLE BORDER=1 CELLPADDING=5>
<TR><TD COLSPAN=2><B>MathLM Server</B></TD> <TD COLSPAN=2><B>%CONST_SERVER_FQDN</B></TD> </TR>
<TR><TD COLSPAN=2>Time/Date</TD> <TD COLSPAN=2>[%CONST_DATE_T2] [%CONST_DATE_M3 %CONST_DATE_D, %CONST_DATE_Y2]</TD> </TR>
<TR><TD COLSPAN=2>Authorized</TD> <TD>%CONST_TOTAL_FE_AUTHORIZED</TD> <TD>%CONST_TOTAL_KE_AUTHORIZED</TD></TR>
<TR><TD COLSPAN=2>Available</TD> <TD>%CONST_TOTAL_FE_AVAILABLE</TD> <TD>%CONST_TOTAL_KE_AVAILABLE</TD></TR>
<TR><TD COLSPAN=2>In Use</TD> <TD>%CONST_TOTAL_FE_OUT</TD> <TD>%CONST_TOTAL_KE_OUT</TD></TR>
%VAR_TOTAL_CHECKEDOUT_HEADER
%REP_GENERAL_CHECKOUT_LINE
</TABLE>
</BODY>
</HTML>
