Server Configuration 属性
使用配置文件或仪表板配置 MATLAB Production Server 实例
每个 MATLAB® Production Server™ 实例都有自己的服务器配置文件 main_config
。要更改使用命令行管理的本地服务器实例的服务器属性,请编辑此路径下与特定服务器实例相对应的 main_config
文件。
server_instance_name/config/main_config
编辑此文件时,请记住以下编码注意事项:
您必须重新启动服务器实例才能使更改生效。
每行仅输入一个配置属性及其选项。每个配置属性条目都以两个破折号 (
--
) 开头。服务器忽略以井号(
#
)开头的任何行并将其视为注释。服务器忽略空白行。
这些示例属性将服务器配置为在端口 9910 上监听客户端请求并执行三个并发 MATLAB 请求。这些属性还设置了 MATLAB Runtime 根和许可证服务器地址。
--http 9910
--num-workers 3
--mcr-root /usr/local/MATLAB/MATLAB_Runtime/R2025a
--license 27000@myhostname
仪表板使用
对于使用仪表板界面创建的本地服务器实例,请在仪表板中编辑相应的服务器属性。
对于使用参考架构在云上部署的服务器,请在云仪表板中编辑相应的服务器属性。有关更多详细信息,请参阅您的部署的云仪表板文档。
Azure® — 使用仪表板管理 MATLAB Production Server
HTTP 和 HTTPS
语法
--http port --http host:port
描述
http
指定接口端口和可选地址或主机名。
参数
| 服务器实例用于接受连接的端口号。通过指定 默认值: |
| 运行服务器实例的计算机的主机名或 IP 地址。如果不指定主机,服务器将绑定到当前计算机上的所有接口。 默认值: |
示例
将本地客户端对 HTTP 接口的访问限制为端口 9911。
--http 9911
绑定到任意空闲端口。绑定的地址写入
。$INSTANCE
/endpoint/http
--http 0
绑定到特定的 IP 地址和端口。
--http 234.27.101.3:9920
绑定到任意空闲端口上的特定主机名。
--http my.hostname.com:0
仪表板使用
在服务器实例的 Settings 选项卡中,在 HTTP 下,将 HTTP 属性设置为所需的值。例如:234.27.101.3:9920
。
语法
--https host:port
描述
https
指定用于安全客户端-服务器通信的接口端口和可选地址或主机名。有关 HTTPS 协议的更多详细信息,请参阅 启用 HTTPS。
如果设置了 https
属性,则必须设置 x509-private-key
和 x509-cert-chain
属性,否则服务器无法启动。
参数
| 运行服务器实例的计算机的主机名或 IP 地址。如果不指定主机,服务器将绑定到任何可用的接口。 |
| 服务器实例用于接受连接的端口号。通过指定 |
示例
将本地客户端对 HTTPS 接口的访问限制为端口 9920。
--https 9920
要绑定到任何空闲端口,请将 https
属性设置为 0。绑定的地址写入
。$INSTANCE
/endpoint/http
--https 0
您还可以绑定到特定的 IP 地址和端口。
--https 234.27.101.3:9920
要绑定到任何空闲端口上的特定主机名,请将端口号设置为 0。
--https my.hostname.com:0
仪表板使用
在服务器实例的 Settings 选项卡中,在 HTTP 下,将 HTTPS 属性设置为所需的值。例如:9920
。
MATLAB Runtime
语法
--mcr-root path
描述
mcr-root
指定已安装 MATLAB Production Server 实例的系统上 MATLAB Runtime 的安装路径。有关指定 MATLAB Runtime 版本的更多详细信息,请参阅 使用命令行为服务器实例指定 MATLAB Runtime。
您可以通过指定多个 mcr-root
属性来配置服务器实例以使用多个 MATLAB Runtime 版本。在单独的行上指定每个属性,并按从最新的 MATLAB Runtime 版本到最旧的版本排序。服务器实例按从第一个到最后一个的顺序扫描指定的 mcr-root
属性列表,然后选择第一个能够处理服务器请求的 MATLAB Runtime 安装。如果 MATLAB Runtime 安装与包含正在评估的 MATLAB 函数的可部署存档兼容,则可以处理服务器请求。
当您将服务器配置为使用多个 MATLAB Runtime 版本时,服务器将使用动态工作进程池管理,它会根据需求启动工作进程进程,并根据系统资源利用率停止工作进程。指定同一版本的多个 MATLAB Runtime 安装不会影响服务器性能。有关详细信息,请参阅支持多个 MATLAB Runtime 版本。
MATLAB Production Server 的安装支持当前的 MATLAB Runtime 版本和之前的五个 MATLAB Runtime 版本。MATLAB Production Server 的云部署安装了这六个版本,并且部署会自动配置 mcr-root
以支持这六个版本。有关详细信息,请参阅MATLAB Production Server 支持的 MATLAB Runtime 版本。
注意
配置服务器实例时,指定本地文件系统上 MATLAB Runtime 的安装路径。指定网络分区上的路径可能会导致工作进程进程失败。
mcr-root
的所有值必须适用于相同的操作系统和硬件组合。
您无需手动设置 MATLAB Runtime 根,而是可以使用 mps-setup
命令按照此安装脚本提供的提示来设置 mcr-root
。
参数
| MATLAB Runtime 安装的根文件夹路径。 默认值: |
示例
使用最新版本的 MATLAB Runtime。
--mcr-root /usr/local/MATLAB/MATLAB_Runtime/R2025a
要指定两个 MATLAB Runtime 版本,请为每个版本添加单独的行。
--mcr-root /usr/local/MATLAB/MATLAB_Runtime/R2025a
--mcr-root /usr/local/MATLAB/MATLAB_Runtime/v98
仪表板使用
在服务器实例的 Settings 选项卡中,在 Core 下,将 MATLAB Runtime 设置为所需的值。例如:
/usr/local/MATLAB/MATLAB_Runtime/R2025a
要指定多个版本,请用逗号分隔。
/usr/local/MATLAB/MATLAB_Runtime/R2025a, /usr/local/MATLAB/MATLAB_Runtime/v98
语法
--user-data key value
描述
user-data
将 MATLAB 数据
与字符串 value
关联。用双引号将包含空格的字符串括起来。使用反斜杠(key
\
)字符作为插入双引号或反斜杠的转义字符。例如,\"
指定双引号字符,\\
指定反斜杠字符。应用程序可以使用 getmcruserdata(key)
检索数据值。有关详细信息,请参阅使用 MATLAB Runtime 用户数据接口 (MATLAB Compiler)。
参数
| 用于访问 MATLAB 值的键,指定为字符串。 |
| 与键关联的 MATLAB 值,指定为字符串。 |
示例
使用并行配置文件设置来设置用户数据。
--user-data ParallelProfile c:\\MPS\\myprofile.settings
设置包含转义引号字符的用户数据。
--user-data MyValue "Quoted string with escaped \"quotes\" and \\backslash."
仪表板使用
在服务器实例的 Settings 选项卡中,在 Advanced 下,将 User Data 设置为所需的值。例如:
--user-data ParallelProfile c:\\MPS\\myprofile.settings
要指定多个键值对,请用逗号分隔。
--user-data ParallelProfile c:\\MPS\\myprofile.settings, --user-data MyValue "Quoted string with escaped \"quotes\" and \\backslash."w
许可证
语法
--license pathList
描述
license
指定许可证服务器的地址或服务器实例使用的许可证文件的路径。您可以使用此选项指定多个许可证源。
如果您没有为该属性指定值,服务器将在
中搜索许可证文件,其中 $MPS_INSTALL
/licenses
是 MATLAB Production Server 的安装位置。$MPS_INSTALL
有关许可的更多详细信息,请参阅管理 MATLAB Production Server 的许可证。
参数
| 一个或多个许可证服务器或许可证文件的路径。使用适合平台的路径分隔符来分隔多个条目。使用冒号( |
示例
在 Linux 服务器上,使用托管在 hostA
的 27000 端口和 /opt/license/license.dat
中的许可证服务器查找许可证。
--license 27000@hostA --license /opt/license/license.dat
要在 Linux 中的一行上指定相同的配置,请用冒号 (:
) 分隔配置。
--license 27000@hostA:/opt/license/license.dat
在 Windows 服务器上,使用托管在 hostA
的 27000 端口和 c:\license\license.dat
中的许可证服务器查找许可证。
--license 27000@hostA --license c:\license\license.dat
要在 Windows 中的一行上指定相同的配置,请用分号 (;
) 分隔配置。
--license 27000@hostA;c:\license\license.dat
仪表板使用
在服务器实例的 Settings 选项卡中,在 License 下,将 License 设置为所需的值。例如:27000@hostA:/opt/license/license.dat
。
语法
--license-grace-period hr:min:sec.fractSec
描述
license-grace-period
指定许可证宽限期,从第一次心跳丢失事件开始。宽限期到期后,服务器实例将拒绝任何新的传入 HTTP 请求。
默认宽限期为 2 小时 30 分钟。最大值也是 2 小时 30 分钟。最小值为 10 分钟。
参数
| 间隔中的小时数 |
| 间隔中的分钟数 |
| 间隔中的秒数 |
| 间隔中秒数的小数部分 |
示例
设置持续 1 小时 29 分钟 5 秒的许可宽限期。
--license-grace-period 1:29:05
设置持续 10 分钟 250 毫秒的许可宽限期。
--license-grace-period 00:10:00.25
仪表板使用
在服务器实例的 Settings 选项卡中,在 License 下,将 License Grace Period 设置为所需的值。例如:1:29:05
。
语法
--license-poll-interval hr:min:sec.fractSec
描述
license-poll-interval
指定许可证服务器超时或宽限期到期后服务器实例轮询许可证服务器的间隔。
默认轮询间隔为 10 分钟。最小值为 10 分钟。
参数
| 间隔中的小时数 |
| 间隔中的分钟数 |
| 间隔中的秒数 |
| 间隔中秒数的小数部分 |
示例
每隔 1 小时 29 分钟 5 秒轮询一次许可证。
--license-poll-interval 1:29:05
每隔 10 分钟 250 毫秒轮询一次许可证。
--license-poll-interval 00:10:00.25
仪表板使用
在服务器实例的 Settings 选项卡中,在 License 下,将 License Poll Interval 设置为所需的值。例如:1:29:05
。
SSL/TLS 安全性
语法
--ssl-verify-peer-mode mode
描述
ssl-verify-peer-mode
指定服务器是否要求客户端出示有效的 SSL 证书才能连接到它。所有请求仍需要授权。
如果将 ssl-verify-peer-mode
设置为 verify-peer-require-peer-cert
,则必须设置 x509-ca-file-store
或 x509-use-system-store
属性。
有关使用此属性的更多详细信息,请参阅配置客户端身份验证。
参数
| 用于验证客户端的模式。有效值为:
默认值: |
示例
要求客户提供 SSL 证书。
--ssl-verify-peer-mode verify-peer-require-peer-cert
仪表板使用
在仪表板中,在服务器实例的 Settings 选项卡中,在 SSL 下,将 SSL Verify Peer Mode 设置为所需值。例如:verify-peer-require-peer-cert
。
语法
--ssl-tmp-dh-param path
描述
ssl-tmp-dh-param
指定预生成的临时 DH 密钥的路径。如果不提供此参数,服务器实例将在启动时自动生成 DH 密钥。提供预生成的 DH 密钥可以减少实例启动时间。
参数
| 预生成的 DH 密钥的路径。相对路径和绝对路径均有效。 |
示例
从位于实例根目录的 dh_param.pem
文件夹中的 x509
文件加载 DH 密钥。
--ssl-tmp-dh-param ./x509/dh_param.pem
仪表板使用
在服务器实例的 Settings 选项卡中,在 SSL 下,将 SSL DH Key Parameter File 设置为所需的值。例如:./x509/dh_param.pem
。
语法
--ssl-tmp-ec-param elliptic_curve_name
描述
ssl-tmp-ec-param
指定用于 ECDHE 密码的椭圆曲线的名称。
默认情况下启用 ECDHE 密码。如果您未指定椭圆曲线名称,ECDHE 密码将使用默认椭圆曲线。默认椭圆曲线的顺序如下:x25519、secp256r1、x448、secp521r1、secp384r1。在 SSL/TLS 握手期间,客户端会公布其支持的曲线。基于此客户端-服务器协商,使用其中一条默认曲线建立安全连接,以便进行后续的数据交换。
参数
| 曲线的名称,指定为 OpenSSL 支持的任何曲线。 |
示例
使用 prime256v1 曲线。
--ssl-tmp-ec-param prime256v1
仪表板使用
在服务器实例的 Settings 选项卡中,在 SSL 下,将 SSL Elliptic Curve Identifier 设置为所需的值。例如:prime256v1
。
语法
--ssl-protocols protocols
描述
ssl-protocols
指定允许的 SSL 协议。如果不设置此属性,服务器将允许使用所有支持的 SSL 协议。支持的协议是 TLSv1、TLSv1.1 和 TLSv1.2。
不支持 SSLv3。
有关使用此属性的更多详细信息,请参阅启用 HTTPS和调整安全协议。
参数
| 以逗号分隔的允许协议列表。有效条目为:
默认值: |
示例
仅允许使用 TLSv1 协议。
--ssl-protocols TLSv1
仪表板使用
在仪表板中,在服务器实例的 Settings 选项卡中,在 SSL 下,在 SSL Protocols 属性中输入协议,例如 TLSv1
。
语法
--ssl-ciphers ciphers
描述
ssl-ciphers
指定服务器用于加密的密码套件列表。
有关使用此属性的更多详细信息,请参阅启用 HTTPS和调整安全协议。
参数
| 服务器实例用于加密的密码套件。有效值为:
为了对所选密码进行更精细的控制,您可以将 OpenSSL 配置字符串与密码一起传递。 默认值: |
示例
仅使用高加密密码套件。
--ssl-ciphers HIGH
禁用 ADH 密码。
--ssl-ciphers ALL:!ADH
使用最强大的可用 ECDHE 密码。
--ssl-ciphers ALL:@STRENGTH
禁用 ADH 密码并使用最强大的可用 ECDHE 密码。
--ssl-ciphers ALL:!ADH@STRENGTH
仪表板使用
在仪表板中,在服务器实例的 Settings 选项卡中,在 SSL 下,将 SSL 密码 设置为所需值,例如 HIGH
。
语法
--ssl-allowed-client client1,...,clientN:archive1,...,archiveN
描述
ssl-allowed-client
根据客户端证书通用名称对客户端进行授权。只有授权的客户端可以请求评估部署到服务器的 MATLAB 函数。
如果客户端的通用名称后面没有存档名称,则客户端可以访问所有已部署的存档。否则,客户端只能访问指定的存档。
您可以设置 ssl-allowed-client
或 access-control-provider
属性。如果同时设置两者,MATLAB Production Server 将无法启动。
有关使用此属性的更多详细信息,请参阅指定对 MATLAB 程序的访问权限和配置客户端身份验证。
参数
| 客户端的通用名称。 |
| 客户端可以访问的已部署存档的名称。 |
示例
允许 client1
和 client2
访问 magic.ctf
和 helloworld.ctf
。允许 client3
访问所有已部署的存档。
--ssl-allowed-client client1,client2:magic,helloworld --ssl-allowed-client client3
仪表板使用
在仪表板中,在服务器实例的 Settings 选项卡中,在 SSL 下,将 SSL Allowed Client 设置为所需值。例如:client1,client2:magic,helloworld
。
自 R2023a 起
语法
--enable-ssl-renegotiation
描述
enable-ssl-renegotiation
在您的 MATLAB Production Server 实例上启用 SSL 重新协商。当服务器身份验证要求发生变化时,SSL 重新协商允许客户端重新输入其身份验证详细信息,从而维持与服务器的连接。
小心
启用 SSL 重新协商会暴露安全漏洞。
默认情况下,SSL 重新协商是禁用的。
示例
启用 SSL 重新协商。
--enable-ssl-renegotiation
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--enable-ssl-renegotiation
语法
--x509-private-key path
描述
x509-private-key
指定私钥的路径。密钥必须为 PEM 格式。
如果不设置此属性,服务器实例将不会加载私钥或服务器端证书。
如果服务器上启用了 https
,则必须设置 x509-private-key
和 x509-cert-chain
属性。否则,服务器无法启动。
有关 HTTPS 协议的更多详细信息,请参阅 启用 HTTPS。
参数
| PEM 格式的私钥文件的路径。相对路径和绝对路径均有效。 |
示例
从实例根目录的 private_key.pem
文件夹加载名为 x509
的私钥文件。
--x509-private-key ./x509/private_key.pem
仪表板使用
在服务器实例的 Settings 选项卡中,在 SSL 下,将 X509 Private Key 设置为所需的值。例如:./x509/private_key.pem
。
语法
--x509-passphrase path
描述
x509-passphrase
指定包含加密私钥密码的文件的路径。如果指定了 x509-private-key
并且私钥文件已加密,则需要此属性。否则私钥加载失败。
注意
该文件必须是所有者只读的。
参数
| 密码文件的路径。相对路径和绝对路径均有效。 |
示例
从位于实例根目录的 key_passphrase.pem
文件夹中的 x509
文件加载密码。
--x509-passphrase ./x509/key_passphrase.pem
仪表板使用
在服务器实例的 Settings 选项卡中,在 SSL 下,将 X509 Passphrase File 设置为所需的值。例如:./x509/key_passphrase.pem
。
语法
--x509-cert-chain path
描述
x509-cert-chain
指定服务器证书链文件。它包含一个或多个 PEM 格式的证书。该链以服务器证书开始,后面跟着一系列不受信任的证书。要使用证书链文件,请指定 x509-private-key
属性。
如果服务器上启用了 https
,则必须设置 x509-private-key
和 x509-cert-chain
属性。否则,服务器无法启动。
有关 HTTPS 协议的更多详细信息,请参阅 启用 HTTPS。
注意
不要在证书链文件中指定受信任的证书。
参数
| 证书链文件的路径。相对路径和绝对路径均有效。 |
示例
从位于实例根目录的 cert_chain.pem
文件夹中的 x509
文件加载证书链。
--x509-cert-chain ./x509/cert_chain.pem
仪表板使用
在服务器实例的 Settings 选项卡中,在 SSL 下,将 X509 Certificate Chain 设置为所需的值。例如:./x509/cert_chain.pem
。
语法
--x509-ca-file-store path
描述
x509-ca-file-store
指定用于验证对等证书的证书颁发机构 (CA) 文件。该文件包含受信任的证书和证书吊销列表。您还可以将中间证书放入 CA 文件中。CA 文件中的中间证书将成为受信任的证书。
参数
| 证书 CA 文件存储的路径。相对路径和绝对路径均有效。 |
示例
从位于实例根目录的 ca_file.pem
文件夹中的 x509
文件加载 CA 存储。
--x509-cert-chain ./x509/ca_file.pem
仪表板使用
在服务器实例的 Settings 选项卡中,在 SSL 下,将 X509 CA File Store 设置为所需的值。例如:./x509/ca_file.pem
。
语法
--x509-use-system-store
描述
x509-use-system-store
指定服务器实例使用系统提供的证书颁发机构 (CA) 存储。默认情况下,服务器使用文件 /etc/ssl/certs/ca-certificates.crt
作为受信任的 CA 存储,并在文件夹 /etc/ssl/certs
下搜索受信任的证书。您可以通过设置环境变量 SSL_CERT_FILE
和 SSL_CERT_DIR
来覆盖这些位置。
有关使用此属性的更多详细信息,请参阅配置客户端身份验证。
示例
启用系统 CA 存储的使用。
--x509-use-system-store
仪表板使用
在服务器实例的 Settings 选项卡中,在 SSL 下,选择或清除 X509 Use System Store。
语法
--x509-use-crl
描述
x509-use-crl
指定服务器实例使用证书吊销列表 (CRL)。默认情况下,实例不使用任何 CRL。在这种情况下,证书颁发机构存储中的 CRL 将被忽略。
如果添加了 x509-use-crl
,则会加载 CRL 并参与客户端证书验证。如果 CRL 已过期,则 SSL 握手被拒绝。
有关使用此属性的更多详细信息,请参阅配置客户端身份验证。
示例
在验证客户端时使用证书吊销列表。
--x509-use-crl
仪表板使用
在服务器实例的 Settings 选项卡中,在 SSL 下,选择或清除 X509 Use CRL 属性。
身份验证和委托
语法
--http-authentication-method method
描述
--http-authentication-method
指定服务器用于验证客户端的 HTTP 验证方法。method
如果不指定此属性,服务器将不执行 HTTP 身份验证。您仍然可以使用 HTTPS 客户端证书进行身份验证。有关身份验证的更多信息,请参阅 配置客户端身份验证 和 使用 Kerberos 身份验证和 Kerberos 委派。
参数
| HTTP 身份验证方法的名称。 |
示例
指定 spnego
作为 HTTP 身份验证方法。
--http-authentication-method spnego
仪表板使用
在服务器实例的 Settings 选项卡中,在 Authentication and Delegation 下,将 HTTP Authentication Method 设置为所需的值。例如:spnego
。
语法
--client-credential-delegation method
描述
client-credential-delegation
指定服务器使用的客户端凭据委派方法。目前,kerberos-without-protocol-transition
是唯一支持的方法。如果将 client-credential-delegation
设置为 kerberos-without-protocol-transition
,则必须将 http-authentication-method
设置为 spnego
;否则服务器无法启动。
有关 Kerberos 委派的详细信息,请参阅 使用 Kerberos 身份验证和 Kerberos 委派。
参数
| 客户端凭据委派方法的名称。 |
示例
使用 kerberos-without-protocol-transition
作为客户端凭据委派方法。
--client-credential-delegation kerberos-without-protocol-transition
仪表板使用
在服务器实例的 Settings 选项卡中,在 Authentication and Delegation 下,将 Client Credential Delegation 设置为所需的值。例如:kerberos-without-protocol-transition
。
应用程序访问控制
语法
--access-control-provider provider
描述
--access-control-provider
使用通用身份提供方实现对部署到服务器的应用程序的访问控制。
您可以设置 access-control-provider
属性或 ssl-allowed-client
属性。如果同时设置两者,服务器将无法启动。
有关访问控制的更多详细信息,请参阅应用程序访问控制。
参数
| MATLAB Production Server 用于应用程序访问控制的身份提供方。provider 支持的值包括 OAuth2 。 |
示例
使用 OAuth 2.0 协议启用访问控制。
--access-control-provider OAuth2
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--access-control-provider OAuth2
语法
--access-control-config path
描述
--access-control-config
指定身份提供方特定配置文件的路径。指定此属性是可选的。OAuth 2.0 身份提供方的默认路径是 path
./config/jwt_idp.json
。
如果通过指定 access-control-provider
属性在服务器实例上启用访问控制,则访问控制配置文件必须存在于 path
中。否则,服务器实例无法启动。
有关访问控制的更多详细信息,请参阅访问控制配置文件。
参数
| 访问配置文件的路径。 |
示例
指定 OAuth 2.0 配置文件的路径。
--access-control-config ./config/jwt_idp.json
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--access-control-config ./config/jwt_idp.json
语法
--access-control-policy path
描述
--access-control-policy
指定服务器实例上的访问控制策略文件的路径。设置此属性是可选的。默认路径为 path
./config/ac_policy.json
。
如果通过指定 access-control-provider
属性启用访问控制,则访问控制策略文件必须存在于 path
中。否则,服务器实例无法启动。
如果启用了访问控制,则实例启动后,它会每五秒扫描一次策略文件以查找任何更改。如果策略文件不存在或包含错误,服务器将继续运行,但它会拒绝所有请求并在 main.log
文件中记录错误消息。
有关访问控制的更多详细信息,请参阅访问控制配置文件。
参数
| 策略文件的路径。 |
示例
指定访问控制策略 JSON 文件的路径。
--access-control-policy ./config/ac_policy.json
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--access-control-policy ./config/ac_policy.json
工作进程管理
语法
--num-workers count
描述
num-workers
定义服务器实例可以同时处理的并发 MATLAB 执行请求的数量。根据本地主机上可用的硬件线程数设置工作进程的数量。
如果为 mcr-root
属性指定单个值,则 num-workers
属性将确定工作进程池的固定大小。例如,如果您为 mcr-root
指定单个值并将 num-workers
设置为 4
,则您的计算机有 4 个可用工作进程。
如果您在服务器配置中指定多个 MATLAB Runtime 版本,则 num-workers
是特定于 MATLAB Runtime 版本的工作进程子池的最大大小。如果一台服务器上有多个 MATLAB Runtime 版本,则工作进程总数可能会超过 num-workers
指定的数量。但是,num-workers
是允许处理请求的最大工作进程数量。例如,具有三个 MATLAB Runtime 版本且 num-workers
设置为 2
的服务器配置有六个可用工作进程。每个子池中的最大工作进程数为两个,在给定时间内可处于活动状态的最大工作进程数为两个。有关多个 MATLAB Runtime 版本的详细信息,请参阅 支持多个 MATLAB Runtime 版本。
参数
| 可用于评估函数的工作进程人数,指定为正整数。 最大值由 MATLAB Production Server 可用的许可证密钥数量决定。 默认值: |
示例
允许十名工作进程同时处理请求。
--num-workers 10
仪表板使用
在服务器实例的 Settings 选项卡中,在 Worker 下,将 Maximum Workers 设置为所需的值。例如:10
。
语法
--component-isolation component-match=<ecma-regular-expression>[ ; max-workers=<positive-integer>] --component-isolation max-isolated-components=<positive-integer>
描述
此设置允许您为任意数量的可部署存档提供其自己的专属工作进程池。您使用与相应文件名词干匹配的 ECMAScript 正则表达式选择可部署存档(对于名为 myctf.ctf
的文件,词干为 myctf
)。对于这些隔离的可部署存档,任何其他存档(无论是隔离的还是非隔离的)都不会使用这个工作进程池。在对现有可部署存档进行热部署更新期间,服务器会重新启动这些隔离池中的工作进程。
参数
属性分隔符(“;”)前后可以有空格。
| 与要隔离的可部署存档文件名匹配的 ECMAScript 正则表达式
|
| 正整数,覆盖每次匹配的
|
|
示例 如果配置了 2 个 |
示例
精确匹配
假设 auto_deploy
中的可部署存档名称使用不同的 max-workers
大小
CTF 被命名为 myctf1 和 myctf2。当遇到这些精确的可部署存档名称时,这将仅隔离它们。
--component-isolation component-match=^myctf1$ ; max-workers=3 --component-isolation component-match=^myctf2$;max-workers=2 --component-isolation max-isolated-components=3
部分广义匹配
假设 auto_deploy
中有以下独立的可部署存档名称:
group1_component1 group1_component2 group2_component1 group2_component2
--component-isolation component-match=^group1_;max-workers=3 --component-isolation max-isolated-components=3
完全广义匹配
假设最多可以隔离 128 个(每个 MATLAB Runtime 版本)不同的可部署存档(或将在热部署期间隔离)。这将隔离所有可部署的存档名称。此设置不依赖于热部署期间的任何名称更改。
--component-isolation component-match=.*;max-workers=3 --component-isolation max-isolated-components=128
有关使用组件隔离属性的原因的更多信息,请参阅在 MATLAB Production Server 中隔离可部署存档。
语法
--worker-restart-interval hr:min:sec.fractSec
描述
worker-restart-interval
指定服务器实例停止并重新启动其工作进程进程的时间间隔。如果工作进程进程在指定的重启间隔内尚未完成请求处理,它将完成处理然后重新启动。
如果不指定此属性,工作进程不会根据时间重新启动。
有关重新启动工作进程的更多详细信息,请参阅控制工作进程重启。
参数
| 间隔中的小时数 |
| 间隔中的分钟数 |
| 间隔中的秒数 |
| 间隔中秒数的小数部分 |
示例
每隔 1 小时 29 分钟 5 秒重启一次工作进程。
--worker-restart-interval 1:29:051:29:05
每隔 10 分钟 250 毫秒重新启动一次工作进程。
--worker-restart-interval 00:10:00.25
仪表板使用
在服务器实例的 Settings 选项卡中,在 Worker 下,将 Worker Restart Interval 设置为所需的值。例如:
00:10:00.25
语法
--worker-restart-memory-limit size
描述
worker-restart-memory-limit
设置工作进程进程的内存使用限制。如果某个工作进程的工作集大小超过 worker-restart-memory-limit
并且持续时间大于 worker-restart-memory-limit-interval
,那么服务器将重新启动该工作进程。
默认情况下,此属性是禁用的。有关重新启动工作进程的更多详细信息,请参阅控制工作进程重启。
参数
| 工作进程使用的内存量。 将
如果不指定单位,则 |
示例
重新启动任何工作集大小超过 1 GB 且持续超过 1 小时的工作进程。
--worker-restart-memory-limit 1GB --worker-restart-memory-limit-interval 1:00:00
仪表板使用
在服务器实例的 Settings 选项卡中,在 Worker 下,将 Worker Restart Memory Limit 设置为所需的值。例如:1GB
。
语法
--worker-restart-memory-limit-interval hr:min:sec.fractSec
描述
worker-restart-memory-limit-interval
设置工作进程进程在重新启动之前可以超出其内存限制的时间间隔。如果某个工作进程的工作集大小超过 worker-restart-memory-limit
并且持续时间大于 worker-restart-memory-limit-interval
,那么服务器将重新启动该工作进程。
默认情况下,此属性是禁用的。有关重新启动工作进程的更多详细信息,请参阅控制工作进程重启。
参数
| 间隔中的小时数 |
| 间隔中的分钟数 |
| 间隔中的秒数 |
| 间隔中秒数的小数部分 |
示例
重新启动任何工作集大小超过 1 GB 且持续超过 1 小时的工作进程。
--worker-restart-memory-limit 1GB --worker-restart-memory-limit-interval 1:00:00
仪表板使用
在服务器实例的 Settings 选项卡中,在 Worker 下,将 Worker Restart Memory Limit Interval 设置为所需的值。例如:1:00:00
。
语法
--worker-memory-check-interval hr:min:sec.fractSec
描述
worker-memory-check-interval
指定轮询工作进程进程内存使用情况的频率。此设置会影响所有基于工作进程内存使用情况的其他设置的行为,例如 worker-memory-trigger
、worker-memory-target
和 worker-restart-memory-limit
。
参数
| 间隔中的小时数 |
| 间隔中的分钟数 |
| 间隔中的秒数 |
| 间隔中秒数的小数部分 |
示例
每隔一分半钟检查一次内存使用情况。
--worker-memory-check-interval 0:01:30
仪表板使用
在服务器实例的 Settings 选项卡中,在 Worker 下,将 Worker Memory Check Interval 设置为所需的值。例如:0:01:30
。
语法
--worker-memory-trigger size
描述
worker-memory-trigger
指定开始关闭工作进程进程以保留的内存使用量阈值。此属性默认处于禁用状态,并且仅当您在 mcr-root
属性中指定多个 MATLAB Runtime 版本时才适用。有关详细信息,请参阅支持多个 MATLAB Runtime 版本。
当所有工作进程使用的内存量超过 worker-memory-trigger
值时,工作进程将按从最旧到最新的顺序关闭,直到内存使用量降至 worker-memory-target
值以下。
将 worker-memory-trigger
设置为小于主机物理内存量的值。worker-memory-target
必须设置为小于或等于 worker-memory-trigger
。如果您未指定 worker-memory-target
或 worker-memory-trigger
,则工作进程永远不会因内存使用情况而关闭。
参数
| 内存量大小。 将
如果不指定单位,则 |
示例
当工作进程池超过 4 GB 时,将池缩小到 2 GB。
--worker-memory-trigger 4GB --worker-memory-target 2GB
仪表板使用
在服务器实例的 Settings 选项卡中,在 Worker 下,将 Worker Memory Trigger 设置为所需的值。例如:4GB
。
语法
--worker-memory-target size
描述
worker-memory-target
指定停止关闭 MATLAB 工作进程进程的下限内存使用阈值。此属性仅当工作进程的内存使用量达到 worker-memory-trigger
阈值后开始关闭时才适用。此属性默认处于禁用状态,并且仅当您在 mcr-root
属性中指定多个 MATLAB Runtime 版本时才适用。有关详细信息,请参阅支持多个 MATLAB Runtime 版本。
当所有工作进程使用的内存量超过 worker-memory-trigger
值时,工作进程将按从最旧到最新的顺序关闭,直到内存使用量降至 worker-memory-target
值以下。
将 worker-memory-trigger
设置为小于主机物理内存量的值。worker-memory-target
必须设置为小于或等于 worker-memory-trigger
。如果您未指定 worker-memory-target
或 worker-memory-trigger
,则工作进程永远不会因内存使用情况而关闭。
示例
当工作进程池超过 4 GB 时,将池缩小到 2 GB。
--worker-memory-trigger 4GB --worker-memory-target 2GB
参数
| 内存量大小。 将
如果不指定单位,则 |
当所有工作进程使用的内存量超过 worker-memory-trigger
值时,工作进程将按从最旧到最新的顺序关闭,直到内存使用量降至 worker-memory-target
值以下。
将 worker-memory-trigger
设置为小于主机物理内存量的值。worker-memory-target
必须设置为小于或等于 worker-memory-trigger
。如果您未指定 worker-memory-target
或 worker-memory-trigger
,则工作进程永远不会因内存使用情况而关闭。
仪表板使用
在服务器实例的 Settings 选项卡中,在 Worker 下,将 Worker Memory Target 设置为所需的值。例如:2GB
。
语法
--queue-time-trigger hr:min:sec.fractSec
描述
queue-time-trigger
指定创建额外 MATLAB 工作进程来处理服务器队列中的请求的时间间隔。仅当您在 mcr-root
属性中指定多个 MATLAB Runtime 版本时,此属性才适用。有关详细信息,请参阅支持多个 MATLAB Runtime 版本。
服务器根据排队时间创建工作进程,排队时间是指请求自到达服务器以来等待处理的时间。服务器遵循以下算法:
根据请求到达服务器的时间对其进行排序。
将请求从最旧到最新映射到空闲的工作进程上。
如果请求无法映射到工作进程,并且请求的排队时间超过了
queue-time-trigger
值,则创建额外的工作进程来处理请求。当满足以下任一条件时,停止创建额外的工作进程:
最早请求的排队时间低于
queue-time-target
值。每个子池的工作进程数量超过了
num-workers
指定的值。
queue-time-trigger
和 queue-time-target
的默认值为 250 毫秒。queue-time-target
必须小于或等于 queue-time-trigger
。
参数
| 间隔中的小时数 |
| 间隔中的分钟数 |
| 间隔中的秒数 |
| 间隔中秒数的小数部分 |
示例
当排队时间超过 500 毫秒时,扩展工作进程池,直到排队时间降至 100 毫秒以下。
--queue-time-trigger 0:00:00.5 --queue-time-target 0:00:00.1
仪表板使用
在服务器实例的 Settings 选项卡中,在 Worker 下,将 Queue Time Trigger 设置为所需的值。例如:0:00:00.5
。
语法
--queue-time-target hr:min:sec.fractSec
描述
queue-time-target
指定停止创建额外的 MATLAB 工作进程来处理服务器队列中的请求的时间间隔。仅当您在 mcr-root
属性中指定多个 MATLAB Runtime 版本时,此属性才适用。有关详细信息,请参阅支持多个 MATLAB Runtime 版本。
服务器根据排队时间创建工作进程,排队时间是指请求自到达服务器以来等待处理的时间。服务器遵循以下算法:
根据请求到达服务器的时间对其进行排序。
将请求从最旧到最新映射到空闲的工作进程上。
如果请求无法映射到工作进程,并且请求的排队时间超过了
queue-time-trigger
值,则创建额外的工作进程来处理请求。当满足以下任一条件时,停止创建额外的工作进程:
最早请求的排队时间低于
queue-time-target
值。每个子池的工作进程数量超过了
num-workers
指定的值。
queue-time-trigger
和 queue-time-target
的默认值为 250 毫秒。queue-time-target
必须小于或等于 queue-time-trigger
。
参数
| 间隔中的小时数 |
| 间隔中的分钟数 |
| 间隔中的秒数 |
| 间隔中秒数的小数部分 |
示例
当排队时间超过 500 毫秒时,扩展工作进程池,直到排队时间降至 100 毫秒以下。
--queue-time-trigger 0:00:00.5 --queue-time-target 0:00:00.1
仪表板使用
在服务器实例的 Settings 选项卡中,在 Worker 下,将 Queue Time Target 设置为所需的值。例如:0:00:00.1
。
语法
--merge-worker-streams
描述
merge-worker-streams
将 stdout
和 stderr
工作进程流合并为单个流。
默认情况下,此属性是禁用的。
示例
将 stdout
和 stderr
工作进程流合并为单个流。
--merge-worker-streams
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--merge-worker-streams
语法
--socket-root path
描述
socket-root
指定服务器运行时用于进程间通信的套接字的文件夹位置。此属性仅适用于本地和 POSIX 安装。
默认情况下,套接字根是服务器实例的 .mps_socket
文件夹。
参数
| 套接字根路径 |
示例
指定套接字根的路径。
--socket-root ./.mps_socket
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--socket-root ./.mps_socket
请求和路由
语法
--request-size-limit size
描述
request-size-limit
指定请求的最大大小。默认请求大小为 64 MB。允许的最大请求大小为 2,147,483,647 字节,这是 32 位有符号整数的最大正值。
参数
| 请求的大小。 将
如果不指定单位,则 |
示例
将请求大小设置为 128 MB。
--request-size-limit 128MB
仪表板使用
在服务器实例的 Settings 选项卡中,在 Core 下,将 Request Size Limit 设置为所需的值。例如:128MB
。
语法
--request-timeout hr:min:sec.fractSec
描述
request-timeout
指定请求达到终端状态后超时的持续时间。此时,服务器将删除该请求,除非客户端进程已经删除了该请求。
参数
| 间隔中的小时数 |
| 间隔中的分钟数 |
| 间隔中的秒数 |
| 间隔中秒数的小数部分 |
示例
将请求设置为两小时后超时。
--request-timeout 2:00:00
仪表板使用
在服务器实例的 Settings 选项卡中,在 Core 下,将 Request Timeout 设置为所需的值。例如:2:00:00
。
语法
--cors-allowed-origins * --cors-allowed-origins origin1,...,originN
描述
cors-allowed-origins
指定允许客户端向 MATLAB Production Server 实例发出请求的域来源集。跨域资源共享 (CORS) 定义了客户端 Web 应用程序和服务器如何交互以安全地确定是否允许跨域请求。浏览器客户端和用 JavaScript® 编写的客户端代码通常使用 XMLHttpRequest
对象发出跨域请求。为了使 MATLAB Production Server 支持此类请求,您必须在服务器上启用 cors-allowed-origins
。
参数
| 允许来自任何域名来源的请求访问服务器。 |
| 允许访问服务器的域名来源的逗号分隔列表。 |
示例
允许来自任何域名来源的请求访问服务器。
--cors-allowed-origins *
允许来自特定域源的请求访问服务器。
--cors-allowed-origins http://www.w3.org, https://www.apache.org
仪表板使用
在服务器实例的 Settings 选项卡中,在 HTTP 下,将 CORS Allowed Origins 设置为所需的值。例如:http://www.w3.org, https://www.apache.org
。
语法
--http-linger-threshold size
描述
http-linger-threshold
设置服务器实例发生错误后读取的数据量。如果 HTTP 请求被拒绝并且服务器实例发回 HTTP 错误响应(例如 HTTP 404/413),则服务器实例不会立即关闭 TCP 连接。相反,它等待客户端关闭 TCP 连接。此行为可确保客户端收到服务器实例发送的 HTTP 错误响应。在此期间,服务器实例接收并丢弃来自客户端的数据,直到接收的数据量等于 http-linger-threshold
。达到该阈值时,服务器实例将重置 TCP 连接。
默认情况下,阈值是无限制的,服务器实例等待接收整个 HTTP 请求。
参数
| TCP 连接重置之前接收的数据量。 将
如果不指定单位,则 |
示例
将延迟阈值设置为 64 MB。
--http-linger-threshold 64MB
将停留阈值设置为 32 KB。
--http-linger-threshold 32KB
将停留阈值设置为 1024 B。
--http-linger-threshold 1024
仪表板使用
在服务器实例的 Settings 选项卡中,在 HTTP 下,选择 HTTP Linger Threshold 为所需值。例如:64MB
。
语法
--enable-http-pipelining
描述
enable-http-pipelining
支持流水线请求的并行执行。默认情况下,此属性是禁用的。
示例
启用并行管道执行。
--enable-http-pipelining
仪表板使用
在服务器实例的 Settings 选项卡中,在 HTTP 下,选择或清除 Enable HTTP Pipelining。
语法
--files-root path
描述
files-root
使 MATLAB Production Server 能够通过 HTTP 或 HTTPS 提供静态内容。
要从 Web 浏览器访问此静态文件内容,请输入以下 URL:
http(s):host:port/~files/filename.ext
- 服务器主机名host
- 服务器端口号port
- 静态文件的名称,其中filename.ext
ext
是文件扩展名
有关使用 Web 处理程序提供静态内容的详细信息,请参阅 处理 HTTP 请求中的自定义路由和负载。
参数
| 包含静态文件的文件夹的路径。 |
示例
启用服务器来提供静态内容。假设您有一个在 my.server.com
和端口号 9910 上运行的服务器。还假设您有一个文本文件 my_file.txt
,存储在名为 static_files
的文件夹中,并且 static_files
位于服务器实例的根文件夹中。将 static_files
文件夹的路径指定为 files-root
属性的参数。
--files-root ./static_files
要从 Web 浏览器访问 my_file.txt
,请在浏览器的地址栏中指定以下内容:http://my.server.com:9910/~files/my_file.txt
。
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--files-root ./static_files
自 R2022a 起
语法
--routes-file path
描述
routes-file
指定用于指定 URL 路由的文件的位置。URL 路由使服务器能够将请求 URL 中的路径映射到服务器上部署的任何可部署存档和 MATLAB 函数。
该文件的默认名称为 routes.json
,默认位置位于服务器实例的 /config
文件夹中。
或者,您可以在 JSON 文件中定义特定于服务器上部署的每个存档的 URL 路由,并按可部署存档名称组织您的路由。有关定义 URL 路由的更多详细信息,请参阅 处理 HTTP 请求中的自定义路由和负载。
参数
| 路由文件路径 |
示例
指定 URL 路由文件的路径。
--routes-file ./config/routes.json
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--routes-file ./config/routes.json
服务器内存
语法
--server-memory-threshold size
描述
server-memory-threshold
设置服务器进程的内存大小限制。如果服务器进程大小超过
,则响应将被存档或清除,如 size
server-memory-threshold-overflow-action
所指定(分别到 archive_responses
或 purge_responses
)。如果未设置 server-memory-threshold
,则响应将绑定到服务器进程,导致内存占用空间增加。为了防止服务器进程的内存不断增长,客户端进程可以在使用后删除请求。
参数
| 服务器进程的阈值大小。 将
如果不指定单位,则 |
示例
当服务器进程内存占用空间达到 500 MB 时存档响应。
--server-memory-threshold 500MB --server-memory-threshold-overflow-action archive_responses
仪表板使用
在服务器实例的 Settings 选项卡中,在 Server Memory 下,将 Server Memory Threshold 设置为所需的值。例如:2GB
。
语法
--server-memory-threshold-overflow-action action
描述
server-memory-threshold-overflow-action
指定当 server-memory-threshold
设置的内存中的服务器进程大小被突破时,是否存档或清除响应。
参数
| 当服务器达到内存阈值时采取的溢出操作。有效值为:
|
示例
当服务器进程内存占用空间达到 500 MB 时存档响应。
--server-memory-threshold 500MB --server-memory-threshold-overflow-action archive_responses
仪表板使用
在服务器实例的 Settings 选项卡中,在 Server Memory 下,将 Server Memory Threshold Overflow Action 设置为所需的值。例如:archive_responses
。
语法
--response-archive-root path
描述
response-archive-root
指定 path
指定的响应的存档位置。如果 server-memory-threshold-overflow-action
选项设置为 archive_responses
,则必须设置此选项。服务器进程必须对 path
具有读写权限。
参数
| 响应存档根的路径。 |
示例
设置存档根。
--response-archive-root ./.response_archive
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--response-archive-root ./.response_archive
语法
--response-archive-limit size
描述
response-archive-limit
指定服务器进程可用于存档的最大磁盘空间。如果达到 size
设置的限制,则按照先进先出的顺序删除存档,直到服务器进程的空间低于 size
。如果没有指定此限制,则服务器进程将假定存档的磁盘使用没有限制。
参数
| 服务器进程的大小。 将
如果不指定单位,则 |
示例
将存档大小设置为 5 GB。
--response-archive-limit 5GB
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--response-archive-limit 5GB
服务器性能
语法
--num-threads count
描述
num-threads
设置 MATLAB Production Server 实例可用于处理客户端请求的线程池大小。服务器实例不会为每个客户端连接分配唯一的线程。当连接上有数据可用时,将在主服务器进程的线程池中安排所需的处理。
该池中的线程不直接评估 MATLAB 函数。每个工作进程进程都有一个单独的线程,代表客户端执行 MATLAB 代码。
将此参数设置为 1
,并且仅当预期负载由大量短时间运行的请求组成时才增加该参数。该策略可确保可用的处理器资源在 MATLAB 函数评估和处理客户端-服务器请求之间保持平衡。将此参数增加到超过可用核心的数量通常不会带来任何好处。
参数
| 线程池中可用的线程数,指定为正整数。 默认值: |
示例
创建一个由十个线程组成的池来处理请求。
--num-threads 10
仪表板使用
在服务器实例的 Settings 选项卡中,在 Core 下,将 Maximum Threads 设置为所需的值。例如:10
。
语法
--use-single-comp-thread
描述
--use-single-comp-thread
指定工作进程使用单个计算线程启动 MATLAB Runtime。
示例
使用单个计算线程启动 MATLAB Runtime。
--use-single-comp-thread
仪表板使用
在服务器实例的 Settings 选项卡中,在 Core 下,选择或清除 Use Single Computational Thread。
自动部署
语法
--auto-deploy-root path
描述
auto-deploy-root
指定服务器实例扫描可部署存档的文件夹。
服务器实例在启动时会自动解压并部署位于此文件夹中的存档。
如果设置了 async-deploy-on-startup
,则服务器实例仅在启动后才部署存档。
添加、更新或删除可部署存档后,无需重新启动服务器。多个服务器实例可以共享一个 auto-deploy-root
文件夹。使用此文件夹允许近乎同时地热部署到多个实例。服务器每五秒扫描一次文件夹以查找任何更改。
有关自动部署的更多详细信息,请参阅将存档部署至 MATLAB Production Server 和 修改已部署的函数。
参数
| 服务器实例扫描可部署存档的文件夹路径。该路径相对于服务器实例根文件夹。 |
示例
扫描 auto_deploy
文件夹以查找可部署的存档并进行自动部署。
--auto-deploy-root ./auto_deploy
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--auto-deploy-root ./auto_deploy
语法
--async-deploy-on-startup
描述
async-deploy-on-startup
将可部署存档的部署延迟至服务器启动之后。启动后,服务器会扫描 auto-deploy-root
属性指定的存档夹以查找要部署的存档,然后部署它们。由于此延迟部署,存档仅在服务器完成部署后才可访问,而服务器启动后无法立即访问。如果您有多个存档或大型存档需要部署,请设置此属性以避免启动时服务器超时。
如果不设置此属性,服务器实例在启动时会自动解压并部署放置在 auto-deploy-root
属性指定的文件夹中的存档。
有关自动部署的更多详细信息,请参阅将存档部署至 MATLAB Production Server 和 修改已部署的函数。
示例
服务器启动后部署存档。
--async-deploy-on-startup
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--async-deploy-on-startup
语法
--extract-root path
描述
extract-root
指定用于存储部署在服务器实例上的可部署存档的扩展内容的根文件夹。可部署存档被解压到 extract-root
的隐藏子目录中。
参数
| 用于存储可部署存档内容的根文件夹的路径(相对于服务器实例的根文件夹)。 |
示例
将可部署存档提取到 archives
文件夹中。
--extract-root ./archives
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--extract-root ./archives
发现和度量
语法
--enable-discovery
描述
enable-discovery
启用 HTTP 或 HTTPS 访问用于了解部署到服务器的 MATLAB 函数的函数发现 API。该 API 可从以下路径获取:
http(s)://host:port/api/discovery
API 将发现信息作为 JSON 对象返回。要调用 API,请参阅 GET Discovery Information。有关 API 的更多详细信息,请参阅 用于发现和诊断的 RESTful API。默认情况下,此属性是禁用的。
示例
启用发现 API。
--enable-discovery
仪表板使用
在服务器实例的 Settings 选项卡中,在 Core 下,选择或清除 Enable Discovery。
语法
--enable-metrics
描述
enable-metrics
启用 HTTP 或 HTTPS 访问 API 以检索 Prometheus® 度量格式的度量或服务器实例。
该 API 可从以下路径获取:
http(s)://host:port/api/metrics
默认情况下,此属性是禁用的。
要调用 API,请参阅 GET Metrics。有关 API 的更多详细信息,请参阅 用于发现和诊断的 RESTful API。
示例
启用度量 API。
--enable-metrics
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--enable-metrics
日志记录
语法
--log-root path
描述
log-root
指定 MATLAB Production Server 实例写入日志文件的文件夹的位置。此属性仅适用于本地服务器安装。
服务器在启动时创建以下日志文件。
main.log
- 最新的日志文件。main.out
- 从主进程捕获标准输出。main.err
- 捕获来自主进程的标准错误输出。main__
DATE
__
SERIAL
.log
- 主进程日志。当服务器实例重新启动或main.log
的大小达到log-rotation-size
属性设置的限制时,服务器会将main.log
重命名为main__
DATE
__
SERIAL
.log
并将其存档到log-archive-root
属性设置的文件夹中。默认存档位置是服务器实例的old_logs
文件夹。
有关日志记录的更多详细信息,请参阅 管理日志文件 和 服务器诊断工具。
注意
省略此属性将禁用所有日志记录。
参数
| 包含服务器实例的日志文件的文件夹的路径。 默认值: |
示例
将服务器日志存储在默认位置,即服务器实例的 log
文件夹。
--log-root ./log
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--log-root ./log
语法
--pid-root path
描述
pid-root
指定用于存储 PID 文件的文件夹。PID 文件记录与服务器实例相关的所有进程的系统特定进程标识符。这些文件包括:
main.pid
- 服务器头进程的进程标识符worker_
N
.pid
- 每个工作进程进程的进程标识符N
如果 worker_2.pid
存在但 worker_1.pid
不存在,则 worker_1
可能崩溃并自动重启。您可以通过检查主日志文件来确认此操作。
这些文件的格式是单个十进制整数,即进程标识符。
参数
| 用于存储 PID 文件的文件夹相对于服务器实例的根文件夹的路径。 |
示例
将 PID 文件存储在 pid
文件夹中。
--pid-root ./pid
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--pid-root ./pid
语法
--endpoint-root path
描述
endpoint-root
指定存储服务器命名端点的位置。每个用于外部通信的接口都会在此文件夹中生成一个端点文件。通常这些文件是:
http
- HTTP 函数执行接口control
- 脚本命令使用的本地控制接口
这些文件包含用于与命名服务通信的 URL 的 host:post
部分。
注意
虽然允许修改此位置,但每个实例都必须具有唯一的端点目录。否则,行为未定义。
参数
| 用于存储端点文件的文件夹相对于服务器实例根文件夹的路径。 |
示例
将端点文件存储在 endpt
文件夹中。
--endpoint-root ./endpt
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--endpoint-root ./endpt
语法
--log-severity level
描述
log-severity
指定向主日志添加信息的详细程度。有关日志记录的更多详细信息,请参阅 管理日志文件。
参数
| 记录消息的严重性阈值。有效值为:
这些级别是累积的。例如,指定 |
示例
通过将严重性级别设置为 trace
来启用所有日志消息。
--log-severity trace
仪表板使用
在服务器实例的 Settings 选项卡中,在 Logging 下,将 Log Severity 设置为所需的值。例如:跟踪。
语法
--log-rotation-size size
描述
log-rotation-size
指定日志在旋转到存档区域之前可以增长的最大大小。如果指定的大小低于 1 MB,服务器将发出警告并将有效大小增加到 1 MB。
没有条目表示日志从未被存档。
参数
| 日志文件的大小。 将
如果不指定单位,则 |
示例
当日志达到 5 MB 时轮换日志。
--log-rotation-size 5MB
仪表板使用
在服务器实例的 Settings 选项卡中,在 Logging 下,将 Log Rotation Size 设置为所需的值。例如:5MB
。
语法
--hide-matlab-error-stack
描述
hide-matlab-error-stack
控制服务器是否将 MATLAB 错误堆栈发送给客户端。您可以选择在开发和调试阶段发送错误堆栈,但可以在生产中将其关闭。
示例
禁止向客户端传输错误堆栈。
--hide-matlab-error-stack
REST 客户端收到类似这样的错误。
{ "error": { "id": "MATLAB:invalidConversion", "message": "Conversion to double from struct is not possible.", "type": "matlaberror" } }
为了能够将错误堆栈传输到客户端,请添加 #
来注释该属性。
#--hide-matlab-error-stack
现在,REST 客户端会收到类似这样的错误。
{ "error": { "id": "MATLAB:invalidConversion", "message": "Conversion to double from struct is not possible.", "stack": [ { "file": "C:\\Program Files\\MATLAB\\MATLAB Runtime\\v99\\mcr\\toolbox\\matlab\\elmat\\magic.m", "line": 9, "name": "magic" }, { "file": "J:\\server20b\\.mps_deployed\\mpsTestData_6\\mpsTestData\\m\\myMagic.m", "line": 7, "name": "myMagic" } ], "type": "matlaberror" } }
仪表板使用
在服务器实例的 Settings 选项卡中,在 Core 下,选择或清除 Hide MATLAB Error Stack。
语法
--log-archive-root path
描述
log-archive-root
指定存储轮换日志文件的目录的路径。
注意
如果省略此属性,则轮换的日志将保留在日志根目录中,该目录会随着日志轮换而无限增长。
参数
| 相对于服务器实例的根文件夹的日志文件存档文件夹的路径。 |
示例
存档到名为 old_logs
的文件夹,该文件夹位于服务器实例的根文件夹中。
--log-archive-root ./old_logs
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--log-archive-root ./old_logs
语法
--log-archive-max-size size
描述
log-archive-max-size
指定在删除旧日志文件之前日志存档文件夹可以增长到的最大大小。
如果未指定此属性,则日志存档将无限制地增长。
参数
| 存档夹的大小(以字节为单位)。 将
如果不指定单位,则 |
示例
当日志存档达到 5 MB 时收集它们。
--log-archive-max-size 5MB
仪表板使用
在仪表板中,在服务器实例的 Settings 选项卡中,在 Logging 下,将 Log Archive Max Size 设置为所需值。例如:5MB
。
语法
--log-handler format command
描述
log-handler
添加一个日志处理程序,以 command
指定的格式将日志数据写入 format
指定的应用程序。
服务器实例在启动时启动日志处理程序的实例。所有日志事件都被发送到日志处理程序的 STDIN
流。日志处理程序的 STDOUT
和 STDERR
流被捕获并写入
和 INSTANCE_ROOT
/log/custom_logger_N
.out
。INSTANCE_ROOT
/log/custom_logger_N
.err
参数
| 用于写入日志事件的格式。有效值为:
|
| 启动应用程序来处理日志事件。 |
示例
将日志事件发送到准备性能图的自定义 JSON 解析器。
--log-handler text/json perf_grapher
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--log-handler text/json perf_grapher
语法
--main-log-format format
描述
main-log-format
指定在 main.log
文件中记录事件的文本格式。如果不设置此属性,服务器将以纯文本形式写入日志数据。
有关日志记录的更多详细信息,请参阅 管理日志文件。
参数
| 编写日志事件的格式。有效值为:
|
示例
以 JSON 格式记录事件。
--main-log-format text/json
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--main-log-format text/json
语法
--profile state object
描述
当 object
为 profile
时,on
会在 state
的主日志中记录服务器配置文件信息。默认的 state
是 off
,其中服务器不记录任何配置文件信息。您可以通过指定多个配置文件属性来记录多个对象的配置文件信息。
要在配置服务器时设置分析选项,请指定 profile
属性。如果更新已在运行的服务器的 profile
属性,则必须重新启动服务器才能使更新生效。要设置或更新已运行服务器的分析选项而不必重新启动服务器,请使用 mps-profile
命令。运行 mps-profile
将覆盖使用 profile
属性设置的任何分析选项。
有关日志记录的更多详细信息,请参阅 管理日志文件。
注意
激活分析会对性能产生负面影响。
参数
| 标志控制服务器是否将配置文件信息写入主日志。有效状态为:
|
object | 要记录的信息。有效对象为:
对象是分层的。例如,指定 如果不指定对象,服务器将记录所有对象的信息。 |
示例
记录所有对象的配置文件信息。
--profile on
仅记录服务器请求的配置文件信息。
--profile on server.request
记录请求中的客户端和工作进程的配置文件信息。
--profile on server.request.client --profile on server.worker
主日志的摘录包含所有对象的分析信息。
93 [2020.03.19 13:05:56.554236] [profile] [client:[::1]:62736] [component:mymagic] [connection_id:2] [function:magic] [mode:sync] [request_id:0:1:1][service:http-connection] [type:request_arrive] Request arrived and was placed in the queue. 94 [2020.03.19 13:05:56.554236] [profile] Request to allocate next available worker 95 [2020.03.19 13:05:56.555240] [profile] Lease created for worker-1 96 [2020.03.19 13:05:56.555240] [profile] [client:[::1]:62736] [request_id:0:1:1] [type:request_start] [worker_id:1] Request started executing on worker 1 ... 99 [2020.03.19 13:05:56.558233] [profile] [client:[::1]:62736] [request_id:0:1:1] [type:request_finish] [worker_id:1] Request completed with HTTP status 200 100 [2020.03.19 13:05:56.558233] [profile] Lease terminated for worker-1 101 [2020.03.19 13:05:56.558233] [profile] worker-1 PASSED health check; returning to the pool
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--profile on server.request.client --profile on server.worker
启动和关闭
语法
--disable-control-c
描述
disable-control-c
禁用服务器实例的 Ctrl+C 终端中断。
如果同时设置了 disable-control-c
和 enable-graceful-shutdown
,那么服务器将忽略 Ctrl+C 终端中断事件。仅当接收到程序终止信号或者系统关闭或重启时,服务器才会正常关闭。
示例
禁用 Ctrl+C 终端中断。
--disable-control-c
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--disable-control-c
语法
--enable-graceful-shutdown
描述
如果服务器进程被终端中断信号中断或被程序终止信号终止,enable-graceful-shutdown
可以正常关闭服务器进程。当运行服务器的系统关闭或重新启动时,服务器将释放所有已签出的许可证。
如果同时设置了 disable-control-c
和 enable-graceful-shutdown
,那么服务器将忽略 Ctrl+C 终端中断事件。仅当接收到程序终止信号或者系统关闭或重启时,服务器才会正常关闭。
示例
启用服务器正常关闭。
--enable-graceful-shutdown
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--enable-graceful-shutdown
语法
--no-display
描述
no-display
禁用在 UNIX 系统上运行的工作进程进程的 X11 图形显示。默认情况下禁用图形显示。不建议启用它。部署到服务器的 MATLAB 代码通常不需要图形显示。在 UNIX 系统上,启用显示会通过增加平均请求延迟和降低吞吐量来显著降低性能。
示例
通过注释掉 no-display
属性来启用 X11 图形显示(不推荐)。
# --no-display
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
# --no-display
语法
--server-termination-grace-period hr:min:sec.fractSec
描述
server-termination-grace-period
指定在接收到 mps-stop
命令后强制终止所有正在运行的服务器和工作进程进程之前等待的时间间隔。此宽限期使服务器有时间正常关闭。
如果服务器指定了 server-termination-grace-period
值,则:
如果使用
--timeout
选项运行mps-stop
,服务器进程将在server-termination-grace-period
指定的hr
:min
:sec
.fractSec
值处强制终止。如果使用
-k
和--timeout
选项运行mps-stop
,则服务器进程将在--timeout
值指定的持续时间内强制终止。
参数
| 间隔中的小时数 |
| 间隔中的分钟数 |
| 间隔中的秒数 |
| 间隔中秒数的小数部分 |
示例
1 小时 29 分 5 秒后强制终止服务器实例进程。
--server-termination-grace-period 1:29:05
10 分钟 250 毫秒后强制终止服务器实例进程。
--server-termination-grace-period 00:10:00.25
仪表板使用
在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:
--server-termination-grace-period 1:29:05
版本历史记录
在 access-control-provider
属性中,将提供程序选项指定为 OAuth2
,而不是 AzureAD
。指定 OAuth2
包括对 AzureAD
的支持。
在 access-control-config
属性中,azure_ad.json
文件名将在未来的版本中被删除。如果将 access-control-provider
属性设置为 OAuth2
,则访问控制配置文件的默认名称现在是 jwt_idp.json
,而不是 azure_ad.json
。
在 profile
属性中,对象 requests
和 worker_pool
将在未来的版本中被删除。使用 server.request
代替 requests
,使用 server.worker.pool
代替 worker_pool
。
另请参阅
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)