监控 MathLM

什么是 MonitorLM

MonitorLM 还介绍可用的许可证和已被签出(checked out)的许可证,完全合格的域名以及已经签出的用户名等等. MonitorLM 可以把输出发送到终端,打开一个网页浏览器,或者写入一个文件. MonitorLM 的输出通过一个配置文件自定义. MonitorLM 自动支持 IPv4 和 IPv6 环境.

启动 MonitorLM

若要启动 MonitorLM,把目录更改到 MathLM 安装的地址,并且输入 .\monitorlm servername(在 Windows 上)或者 ./monitorlm servername(在 Linux 或者 Mac OS X 上). monitorlm 命令的第一个变量指定运行 MathLM 的许可证服务器名称.如果用户没有明确指定一个服务器名称,则选择本地机器名作为默认值.

MonitorLM 命令行选项

以下选项使用 monitorlm 命令可用.指定一个选项的语法为 monitorlm .

-file file指定输出应该指向的文件
-format f指定 MonitorLM 输出的格式
-localtime指定所有参考时间为本地时间,而不是 GMT 时间
-template file指定 MonitorLM 输出的模板文件

monitorlm 命令行选项

如果 -file 没有设置,MonitorLM 将写入 stdout.

-format 中的三个可能输出格式如下:

text以文本格式把输出发送至 stdout(在 Linux 上是默认的)
html以 HTML 格式发送输出,并且启动一个网页浏览器(在 Windows 和 Mac OS X 上是默认的)
cgi以 HTML 格式发送输出至 stdout

-format 输出格式

当直接使用网页浏览器启动 MonitorLM 时,使用 cgi 格式.

这里显示 MonitorLM 的输出看起来是什么样子的,当 -format 设为 text.

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

这里显示在一个网页浏览器中 MonitorLM 的输出看起来是什么样子的,当 -format 设为 html.

注意当 -format 设为 cgiMonitorLM 的输出以 HTML 格式发送至 stdout. 这里显示当在网页浏览器中显示时,输出看起来是什么样子的.

自定义 MonitorLM 的输出

用户可以通过编辑一个模板文件,自定义从 MonitorLM 得到的输出的内容和格式. 这是一个普通文本文件,它可以包含以下元素类别.

  • 常量标签 — 这些标签表示在 MonitorLM 的执行过程中,它是静态的并且与许可证无关,比如当前日期. 这些标签名称的每一个都具有前缀 CONST.
  • 变量标签 — 这些标签作为常量标签的包装(wrappers). 它们对于定义作为级数中的输出的数据是有用的,比如一个当前 MathLM 用户的表格. 它们对于提高模板文件的可读性是有用的. 这些标签名的每一个都具有前缀 VAR.
  • 取决于进程的标签 — 这些标签的值取决于哪个 Mathematica 进程正在显示,并且包括数据如进程所有者的用户名和 IP 地址. 每个标签名具有前缀 PROC.
  • 重复标签 — 这些标签充当了未知数目的许可证的信息的占位符. 它们是唯一大小没有预定的标签. 只有签出行重复,而对于每个许可证有一个签出行. 这些标签名的每一个都具有前缀 REP.
    • 文本包装(Text wrappers)— 这是用户可以用来包装标签的文本,用于演示和格式化.

    在模板文件中的每个标签具有形式 %var#,其中

  • var 表示一个变量,该变量的值由服务器提供.
    • # 是定义特定格式的数字,用以显示变量 var.

    除了 %var# 命令,模板文件也可以包括普通文本,比如括号、破折号、引号和任意注释. 该文本可以用来在服务器消息中包含注意和分隔符,用以进行格式化. 包括在该字符串中的所有文本出现在服务器消息中,除了以下两个例外情况:使用 %q 包含双引号("),以及使用 %% 包含百分号(%).

预定义常量标签

以下是可用包括在模板文件中的常量标签名的两个表格,以及它们可能格式的数值值.

日期常量标签

以下是 MonitorLM 的日期常量标签.

标签名
可能值
描述
%CONST_DATE_D#[1...31]一个月中的第几天
%CONST_DATE_W#1 -数字 [ 1 ... 7 ] 2 - 简略标记 [ Sun ... Sat ] 3 - Verbose [ Sunday ... Saturday ]一个星期中的第几天
%CONST_DATE_M#1 - 数字 [ 1 ... 12 ] 2 -简略标记 [ Jan ... Dec ] 3 - Verbose [ January ... December ]月份
%CONST_DATE_Y#1 -两位数字 [ 10 ] 2 -四位数字 [ 2010 ]年份
%CONST_DATE_T#1 -十二小时 [ 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"Mathematica 进程的标题;引号中的第一个字符串是前端标题,第二个是内核标题,第三个是子前端进程标题,而第四个是子内核进程标题
%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_UIDMathematica 进程所有者的用户ID
%PROC_USERMathematica 进程所有者的用户名
%PROC_IP使用 Mathematica 进程的机器的 IP 地址
%PROC_HOST使用 Mathematica 进程的机器的主机名
%PROC_DOMAIN使用 Mathematica 进程的机器的域
%PROC_FQDN使用 Mathematica 进程的机器的完全合格的域名
%PROC_SLOTNUMMathematica 进程的时间段编号(Slot number)
%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 签出行(checkout line). 这里指定了列出正在使用的类别 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 重复标签

注意:本节中提供的字符串是可能值的实例,而不是默认设置. 若要使用这些标签,用户必须在模板中定义它们.

注意:在模板文件中,构成 MonitorLM 输出的文本包装(wrappers)和标签必须在仅包含关键词 %TEXT 的文本之后,而在该关键词之前和之后没有空格. 自定义变量标签必须在 %TEXT 行之前. 如果没有自定义变量标签,%TEXT 行可以是文件的第一行.

示例和行为

这是一个简单的文本文件,仅显示出被授权的,可用的以及正在使用的进程数量. 该例子不需要定义任何变量定义标签.

输出的结果具有如下形式.

这是一个稍微复杂的例子. 它与前面的例子相似,除了它也列出正在使用的进程,并且自定义了变量标签.

输出的结果具有如下形式.

下面例子演示了 HTML 输出. 这是有用的,例如,如果用户想要在网页浏览器中查看 MonitorLM 输出.

%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>

输出的结果具有以下显示的形式.

New to Mathematica? Find your learning path »
Have a question? Ask support »