监控 MathLM
MonitorLM 还介绍可用的许可证和已被签出(checked out)的许可证,完全合格的域名以及已经签出的用户名等等. MonitorLM 可以把输出发送到终端,打开一个网页浏览器,或者写入一个文件. MonitorLM 的输出通过一个配置文件自定义. MonitorLM 自动支持 IPv4 和 IPv6 环境.
若要启动 MonitorLM,把目录更改到 MathLM 安装的地址,并且输入 .\monitorlm servername (在 Windows 上)或者 ./monitorlm servername (在 Linux 或者 Mac 上). monitorlm 命令的第一个变量指定运行 MathLM 的许可证服务器名称.如果用户没有明确指定一个服务器名称,则选择本地机器名作为默认值.
-file
file
| 指定输出应该指向的文件 |
-format f | |
-health
| 检查服务器是否可访问且健康 |
-localtime
| 指定所有参考时间为本地时间,而不是 GMT 时间 |
-template file |
text | 以文本格式把输出发送至 stdout(在 Linux 上是默认的) |
html | 以 HTML 格式发送输出,并且启动一个网页浏览器(在 Windows 和 Mac 上是默认的) |
cgi | 以 HTML 格式发送输出至 stdout |
Online help is available at
http://reference.wolfram.com/network
MathLM Version 11.2
MathLM Server hostname.domain.com
Date : Thursday, August 29 2017 14: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 11.1 A username client1.domain.com 08:49
Mathematica 11.2 A username client2.domain.com 06:33
MathKernel 11.1 A username client1.domain.com 08:44
MathKernel 11.2 A username client2.domain.com 06:52
MathKernel 11.2 A username client2.domain.com 06:52
MathKernel 11.2 A username client2.domain.com 06:30
用户可以通过编辑一个模板文件,自定义从 MonitorLM 得到的输出的内容和格式. 这是一个普通文本文件,它可以包含以下元素类别.
- 常量标签 — 这些标签表示在 MonitorLM 的执行过程中,它是静态的并且与许可证无关,比如当前日期. 这些标签名称的每一个都具有前缀 CONST.
- 变量标签 — 这些标签作为常量标签的包装(wrappers). 它们对于定义作为级数中的输出的数据是有用的,比如一个当前 MathLM 用户的表格. 它们对于提高模板文件的可读性是有用的. 这些标签名的每一个都具有前缀 VAR.
预定义常量标签
日期常量标签
以下是 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_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"
| Wolfram 系统进程的标题;引号中的第一个字符串是前端标题,第二个是内核标题,第三个是子前端进程标题,而第四个是子内核进程标题 | |
%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
| Wolfram 系统进程所有者的用户ID |
%PROC_USER
| Wolfram 系统进程所有者的用户名 |
%PROC_IP
| 使用 Wolfram 系统进程的机器的 IP 地址 |
%PROC_HOST
| 使用 Wolfram 系统进程的机器的主机名 |
%PROC_DOMAIN
| 使用 Wolfram 系统进程的机器的域 |
%PROC_FQDN
| 使用 Wolfram 系统进程的机器的完全合格的域名 |
%PROC_SLOTNUM
| Wolfram 系统进程的时间段编号(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 行可以是文件的第一行.
%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 输出.
%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>