主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

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

仪表板使用

HTTP 和 HTTPS

全部展开

语法

--http port
--http host:port

描述

http 指定接口端口和可选地址或主机名。

参数

port

服务器实例用于接受连接的端口号。通过指定 0 绑定到任何可用端口。

默认值9910

host

运行服务器实例的计算机的主机名或 IP 地址。如果不指定主机,服务器将绑定到当前计算机上的所有接口。

默认值0.0.0.0

示例

将本地客户端对 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-keyx509-cert-chain 属性,否则服务器无法启动。

参数

host

运行服务器实例的计算机的主机名或 IP 地址。如果不指定主机,服务器将绑定到任何可用的接口。

port

服务器实例用于接受连接的端口号。通过指定 0 绑定到任何可用端口。

示例

将本地客户端对 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

参数

path

MATLAB Runtime 安装的根文件夹路径。

默认值mCRrOOTuNsET

示例

使用最新版本的 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)

参数

key

用于访问 MATLAB 值的键,指定为字符串。

value与键关联的 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 中搜索许可证文件,其中 $MPS_INSTALLMATLAB Production Server 的安装位置。

有关许可的更多详细信息,请参阅管理 MATLAB Production Server 的许可证

参数

pathList

一个或多个许可证服务器或许可证文件的路径。使用适合平台的路径分隔符来分隔多个条目。使用冒号(:)作为 Linux® 的路径分隔符,使用分号(;)作为 Windows® 的路径分隔符。

示例

在 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 分钟。

参数

hr间隔中的小时数
min间隔中的分钟数
sec间隔中的秒数
fractSec间隔中秒数的小数部分

示例

设置持续 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 分钟。

参数

hr间隔中的小时数
min间隔中的分钟数
sec间隔中的秒数
fractSec间隔中秒数的小数部分

示例

每隔 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-storex509-use-system-store 属性。

有关使用此属性的更多详细信息,请参阅配置客户端身份验证

参数

mode

用于验证客户端的模式。有效值为:

  • no-verify-peer - 没有对等证书验证。客户端不需要提供证书。

  • verify-peer-require-peer-cert - 客户端必须提供证书,并且该证书将被验证。

默认值no-verify-peer

示例

要求客户提供 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 密钥可以减少实例启动时间。

参数

path

预生成的 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 握手期间,客户端会公布其支持的曲线。基于此客户端-服务器协商,使用其中一条默认曲线建立安全连接,以便进行后续的数据交换。

参数

elliptic_curve_name

曲线的名称,指定为 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调整安全协议

参数

protocols

以逗号分隔的允许协议列表。有效条目为:

  • TLSv1

  • TLSv1.1

  • TLSv1.2

默认值TLSv1.2

示例

仅允许使用 TLSv1 协议。

--ssl-protocols TLSv1

仪表板使用

在仪表板中,在服务器实例的 Settings 选项卡中,在 SSL 下,在 SSL Protocols 属性中输入协议,例如 TLSv1

语法

--ssl-ciphers ciphers

描述

ssl-ciphers 指定服务器用于加密的密码套件列表。

有关使用此属性的更多详细信息,请参阅启用 HTTPS调整安全协议

参数

ciphers

服务器实例用于加密的密码套件。有效值为:

  • ALL - 使用除 eNULL 之外的所有可用的密码套件。

  • HIGH - 使用所有可用的高加密密码套件。

  • 要使用的密码套件的逗号分隔列表。

为了对所选密码进行更精细的控制,您可以将 OpenSSL 配置字符串与密码一起传递。

默认值ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305

示例

仅使用高加密密码套件。

--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-clientaccess-control-provider 属性。如果同时设置两者,MATLAB Production Server 将无法启动。

有关使用此属性的更多详细信息,请参阅指定对 MATLAB 程序的访问权限配置客户端身份验证

参数

client

客户端的通用名称。

archive

客户端可以访问的已部署存档的名称。

示例

允许 client1client2 访问 magic.ctfhelloworld.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-keyx509-cert-chain 属性。否则,服务器无法启动。

有关 HTTPS 协议的更多详细信息,请参阅 启用 HTTPS

参数

path

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 并且私钥文件已加密,则需要此属性。否则私钥加载失败。

注意

该文件必须是所有者只读的。

参数

path

密码文件的路径。相对路径和绝对路径均有效。

示例

从位于实例根目录的 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-keyx509-cert-chain 属性。否则,服务器无法启动。

有关 HTTPS 协议的更多详细信息,请参阅 启用 HTTPS

注意

不要在证书链文件中指定受信任的证书。

参数

path

证书链文件的路径。相对路径和绝对路径均有效。

示例

从位于实例根目录的 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 文件中的中间证书将成为受信任的证书。

参数

path

证书 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_FILESSL_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 method 指定服务器用于验证客户端的 HTTP 验证方法。

如果不指定此属性,服务器将不执行 HTTP 身份验证。您仍然可以使用 HTTPS 客户端证书进行身份验证。有关身份验证的更多信息,请参阅 配置客户端身份验证使用 Kerberos 身份验证和 Kerberos 委派

参数

method

HTTP 身份验证方法的名称。spnego(简单且受保护的协商机制)是唯一支持的方法。

示例

指定 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 委派

参数

method

客户端凭据委派方法的名称。kerberos-without-protocol-transition 是唯一受支持的方法。

示例

使用 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 属性。如果同时设置两者,服务器将无法启动。

有关访问控制的更多详细信息,请参阅应用程序访问控制

参数

providerMATLAB 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 path 指定身份提供方特定配置文件的路径。指定此属性是可选的。OAuth 2.0 身份提供方的默认路径是 ./config/jwt_idp.json

如果通过指定 access-control-provider 属性在服务器实例上启用访问控制,则访问控制配置文件必须存在于 path 中。否则,服务器实例无法启动。

有关访问控制的更多详细信息,请参阅访问控制配置文件

参数

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 文件中记录错误消息。

有关访问控制的更多详细信息,请参阅访问控制配置文件

参数

path

策略文件的路径。

示例

指定访问控制策略 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 版本

参数

count

可用于评估函数的工作进程人数,指定为正整数。

最大值由 MATLAB Production Server 可用的许可证密钥数量决定。

默认值1

示例

允许十名工作进程同时处理请求。

--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)。对于这些隔离的可部署存档,任何其他存档(无论是隔离的还是非隔离的)都不会使用这个工作进程池。在对现有可部署存档进行热部署更新期间,服务器会重新启动这些隔离池中的工作进程。

参数

属性分隔符(“;”)前后可以有空格。

component-match

与要隔离的可部署存档文件名匹配的 ECMAScript 正则表达式

  • 每个条目都需要此参数。

  • 不能包含空格或任何其他配置分隔符。

  • 允许多个条目,但指定的第一个运行时匹配将用于匹配每个请求。

max-workers

正整数,覆盖每次匹配的 --num-workers 设置

  • 可选,但每次匹配默认为 --num-workers

  • 必须大于 0。

  • 可能大于 --num-workers,但在服务器启动时将被限制为 --num-workers

max-isolated-components
  • 必须存在且位于单独的行上

  • 可能仅发生一次

  • 必须大于 0

  • 必须小于或等于 512 / number-of-mcr-root-entries(请参阅 --mcr-root configuration 条目)。每个条目代表一个 MATLAB Runtime 版本。)

    此内部阈值对服务器启动时预先分配的资源总量设置了上限。这个数字也是对每个配置的 MATLAB Runtime 版本可能需要多少个独立的可部署存档的上限合理估计。通常,出于技术原因需要隔离任何一个单独的可部署存档。因此,可部署的独立存档的总数应该在范围内受到限制。将此数字配置为大于本身所需值并不会浪费内存。只有当可部署存档开始使用它时,它才会影响潜在开始工作的工作进程数量。未使用的预分配不会对性能造成任何损失。

  • 如果启动时匹配的可部署存档超过此数量(每个 MATLAB Runtime 版本),则会记录错误并且服务器将启动,但对失败存档的后续请求将无法识别。同样,如果启动后自动部署(又称“热部署”)新的匹配可部署存档超过此数量(每个 MATLAB Runtime 版本),则自动部署将失败并显示相应的日志消息,并且失败的可部署存档将无法识别。

示例

如果配置了 2 个 --mcr-root 实例并且 max-isolated-components=12,那么将有 24 个预分配的隔离池,可以为包含的 MATLAB Runtime 版本号的 auto_deploy 目录中出现的任何已配置的隔离可部署存档提供服务。第一个 --mcr-root 条目将有 12 个池,第二个 --mcr-root 条目将有 12 个池。

示例

精确匹配

假设 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 指定服务器实例停止并重新启动其工作进程进程的时间间隔。如果工作进程进程在指定的重启间隔内尚未完成请求处理,它将完成处理然后重新启动。

如果不指定此属性,工作进程不会根据时间重新启动。

有关重新启动工作进程的更多详细信息,请参阅控制工作进程重启

参数

hr间隔中的小时数
min间隔中的分钟数
sec间隔中的秒数
fractSec间隔中秒数的小数部分

示例

每隔 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,那么服务器将重新启动该工作进程。

默认情况下,此属性是禁用的。有关重新启动工作进程的更多详细信息,请参阅控制工作进程重启

参数

size

工作进程使用的内存量。

size 指定为整数,后跟指定单位的其中一个可选字符串。

  • b - B(字节)

  • k - KB(1024 字节)

  • m - MB(10242 字节)

  • g - GB(10243 字节)

  • t - TB(10244 字节)

  • p - PB(10245 字节)

如果不指定单位,则 size 以字节为单位。单位字母不区分大小写。服务器仅读取单位字符串的第一个字母。

示例

重新启动任何工作集大小超过 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,那么服务器将重新启动该工作进程。

默认情况下,此属性是禁用的。有关重新启动工作进程的更多详细信息,请参阅控制工作进程重启

参数

hr间隔中的小时数
min间隔中的分钟数
sec间隔中的秒数
fractSec间隔中秒数的小数部分

示例

重新启动任何工作集大小超过 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-triggerworker-memory-targetworker-restart-memory-limit

参数

hr间隔中的小时数
min间隔中的分钟数
sec间隔中的秒数
fractSec间隔中秒数的小数部分

示例

每隔一分半钟检查一次内存使用情况。

--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-targetworker-memory-trigger,则工作进程永远不会因内存使用情况而关闭。

参数

size

内存量大小。

size 指定为整数,后跟指定单位的其中一个可选字符串。

  • b - B(字节)

  • k - KB(1024 字节)

  • m - MB(10242 字节)

  • g - GB(10243 字节)

  • t - TB(10244 字节)

  • p - PB(10245 字节)

如果不指定单位,则 size 以字节为单位。单位字母不区分大小写。服务器仅读取单位字符串的第一个字母。

示例

当工作进程池超过 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-targetworker-memory-trigger,则工作进程永远不会因内存使用情况而关闭。

示例

当工作进程池超过 4 GB 时,将池缩小到 2 GB。

--worker-memory-trigger 4GB
--worker-memory-target 2GB

参数

size

内存量大小。

size 指定为整数,后跟指定单位的其中一个可选字符串。

  • b - B(字节)

  • k - KB(1024 字节)

  • m - MB(10242 字节)

  • g - GB(10243 字节)

  • t - TB(10244 字节)

  • p - PB(10245 字节)

如果不指定单位,则 size 以字节为单位。单位字母不区分大小写。服务器仅读取单位字符串的第一个字母。

当所有工作进程使用的内存量超过 worker-memory-trigger 值时,工作进程将按从最旧到最新的顺序关闭,直到内存使用量降至 worker-memory-target 值以下。

worker-memory-trigger 设置为小于主机物理内存量的值。worker-memory-target 必须设置为小于或等于 worker-memory-trigger。如果您未指定 worker-memory-targetworker-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 版本

服务器根据排队时间创建工作进程,排队时间是指请求自到达服务器以来等待处理的时间。服务器遵循以下算法:

  1. 根据请求到达服务器的时间对其进行排序。

  2. 将请求从最旧到最新映射到空闲的工作进程上。

  3. 如果请求无法映射到工作进程,并且请求的排队时间超过了 queue-time-trigger 值,则创建额外的工作进程来处理请求。

  4. 当满足以下任一条件时,停止创建额外的工作进程:

    • 最早请求的排队时间低于 queue-time-target 值。

    • 每个子池的工作进程数量超过了 num-workers 指定的值。

queue-time-triggerqueue-time-target 的默认值为 250 毫秒。queue-time-target 必须小于或等于 queue-time-trigger

参数

hr间隔中的小时数
min间隔中的分钟数
sec间隔中的秒数
fractSec间隔中秒数的小数部分

示例

当排队时间超过 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 版本

服务器根据排队时间创建工作进程,排队时间是指请求自到达服务器以来等待处理的时间。服务器遵循以下算法:

  1. 根据请求到达服务器的时间对其进行排序。

  2. 将请求从最旧到最新映射到空闲的工作进程上。

  3. 如果请求无法映射到工作进程,并且请求的排队时间超过了 queue-time-trigger 值,则创建额外的工作进程来处理请求。

  4. 当满足以下任一条件时,停止创建额外的工作进程:

    • 最早请求的排队时间低于 queue-time-target 值。

    • 每个子池的工作进程数量超过了 num-workers 指定的值。

queue-time-triggerqueue-time-target 的默认值为 250 毫秒。queue-time-target 必须小于或等于 queue-time-trigger

参数

hr间隔中的小时数
min间隔中的分钟数
sec间隔中的秒数
fractSec间隔中秒数的小数部分

示例

当排队时间超过 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-streamsstdoutstderr 工作进程流合并为单个流。

默认情况下,此属性是禁用的。

示例

stdoutstderr 工作进程流合并为单个流。

--merge-worker-streams

仪表板使用

在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:

--merge-worker-streams

语法

--socket-root path

描述

socket-root 指定服务器运行时用于进程间通信的套接字的文件夹位置。此属性仅适用于本地和 POSIX 安装。

默认情况下,套接字根是服务器实例的 .mps_socket 文件夹。

参数

path套接字根路径

示例

指定套接字根的路径。

--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 位有符号整数的最大正值。

参数

size

请求的大小。

size 指定为整数,后跟指定单位的其中一个可选字符串。

  • b - B(字节)

  • k - KB(1024 字节)

  • m - MB(10242 字节)

  • g - GB(10243 字节)

  • t - TB(10244 字节)

  • p - PB(10245 字节)

如果不指定单位,则 size 以字节为单位。单位字母不区分大小写。服务器仅读取单位字符串的第一个字母。

示例

将请求大小设置为 128 MB。

--request-size-limit 128MB

仪表板使用

在服务器实例的 Settings 选项卡中,在 Core 下,将 Request Size Limit 设置为所需的值。例如:128MB

语法

--request-timeout hr:min:sec.fractSec

描述

request-timeout 指定请求达到终端状态后超时的持续时间。此时,服务器将删除该请求,除非客户端进程已经删除了该请求。

参数

hr间隔中的小时数
min间隔中的分钟数
sec间隔中的秒数
fractSec间隔中秒数的小数部分

示例

将请求设置为两小时后超时。

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

参数

*

允许来自任何域名来源的请求访问服务器。

origin1,...,originN

允许访问服务器的域名来源的逗号分隔列表。

示例

允许来自任何域名来源的请求访问服务器。

--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 请求。

参数

size

TCP 连接重置之前接收的数据量。

size 指定为整数,后跟指定单位的其中一个可选字符串。

  • b - B(字节)

  • k - KB(1024 字节)

  • m - MB(10242 字节)

  • g - GB(10243 字节)

  • t - TB(10244 字节)

  • p - PB(10245 字节)

如果不指定单位,则 size 以字节为单位。单位字母不区分大小写。服务器仅读取单位字符串的第一个字母。

示例

将延迟阈值设置为 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 请求中的自定义路由和负载

参数

path

包含静态文件的文件夹的路径。

示例

启用服务器来提供静态内容。假设您有一个在 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 请求中的自定义路由和负载

参数

path路由文件路径

示例

指定 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_responsespurge_responses)。如果未设置 server-memory-threshold,则响应将绑定到服务器进程,导致内存占用空间增加。为了防止服务器进程的内存不断增长,客户端进程可以在使用后删除请求。

参数

size

服务器进程的阈值大小。

size 指定为整数,后跟指定单位的其中一个可选字符串。

  • b - B(字节)

  • k - KB(1024 字节)

  • m - MB(10242 字节)

  • g - GB(10243 字节)

  • t - TB(10244 字节)

  • p - PB(10245 字节)

如果不指定单位,则 size 以字节为单位。单位字母不区分大小写。服务器仅读取单位字符串的第一个字母。

示例

当服务器进程内存占用空间达到 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 设置的内存中的服务器进程大小被突破时,是否存档或清除响应。

参数

action

当服务器达到内存阈值时采取的溢出操作。有效值为:

  • archive_responses - 存档响应。

  • purge_responses - 清除响应。

示例

当服务器进程内存占用空间达到 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 具有读写权限。

参数

path

响应存档根的路径。

示例

设置存档根。

--response-archive-root ./.response_archive

仪表板使用

在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:

--response-archive-root ./.response_archive

语法

--response-archive-limit size

描述

response-archive-limit 指定服务器进程可用于存档的最大磁盘空间。如果达到 size 设置的限制,则按照先进先出的顺序删除存档,直到服务器进程的空间低于 size。如果没有指定此限制,则服务器进程将假定存档的磁盘使用没有限制。

参数

size

服务器进程的大小。

size 指定为整数,后跟指定单位的其中一个可选字符串。

  • b - B(字节)

  • k - KB(1024 字节)

  • m - MB(10242 字节)

  • g - GB(10243 字节)

  • t - TB(10244 字节)

  • p - PB(10245 字节)

如果不指定单位,则 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 函数评估和处理客户端-服务器请求之间保持平衡。将此参数增加到超过可用核心的数量通常不会带来任何好处。

参数

count

线程池中可用的线程数,指定为正整数。

默认值1

示例

创建一个由十个线程组成的池来处理请求。

--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修改已部署的函数

参数

path

服务器实例扫描可部署存档的文件夹路径。该路径相对于服务器实例根文件夹。

示例

扫描 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 的隐藏子目录中。

参数

path

用于存储可部署存档内容的根文件夹的路径(相对于服务器实例的根文件夹)。

示例

将可部署存档提取到 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 文件夹。

有关日志记录的更多详细信息,请参阅 管理日志文件服务器诊断工具

注意

省略此属性将禁用所有日志记录。

参数

path

包含服务器实例的日志文件的文件夹的路径。

默认值./log

示例

将服务器日志存储在默认位置,即服务器实例的 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 可能崩溃并自动重启。您可以通过检查主日志文件来确认此操作。

这些文件的格式是单个十进制整数,即进程标识符。

参数

path

用于存储 PID 文件的文件夹相对于服务器实例的根文件夹的路径。

示例

将 PID 文件存储在 pid 文件夹中。

--pid-root ./pid

仪表板使用

在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:

--pid-root ./pid

语法

--endpoint-root path

描述

endpoint-root 指定存储服务器命名端点的位置。每个用于外部通信的接口都会在此文件夹中生成一个端点文件。通常这些文件是:

  • http - HTTP 函数执行接口

  • control - 脚本命令使用的本地控制接口

这些文件包含用于与命名服务通信的 URL 的 host:post 部分。

注意

虽然允许修改此位置,但每个实例都必须具有唯一的端点目录。否则,行为未定义。

参数

path

用于存储端点文件的文件夹相对于服务器实例根文件夹的路径。

示例

将端点文件存储在 endpt 文件夹中。

--endpoint-root ./endpt

仪表板使用

在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:

--endpoint-root ./endpt

语法

--log-severity level

描述

log-severity 指定向主日志添加信息的详细程度。有关日志记录的更多详细信息,请参阅 管理日志文件

参数

level

记录消息的严重性阈值。有效值为:

  • error - 问题或意外结果的通知

  • warning - 如果不加以解决,可能会导致问题的事件

  • information - 有关主要服务器事件的高级信息

  • trace - 有关服务器内部状态的详细信息

这些级别是累积的。例如,指定 information 包括 warningerror 消息。

示例

通过将严重性级别设置为 trace 来启用所有日志消息。

--log-severity trace

仪表板使用

在服务器实例的 Settings 选项卡中,在 Logging 下,将 Log Severity 设置为所需的值。例如:跟踪

语法

--log-rotation-size size

描述

log-rotation-size 指定日志在旋转到存档区域之前可以增长的最大大小。如果指定的大小低于 1 MB,服务器将发出警告并将有效大小增加到 1 MB。

没有条目表示日志从未被存档。

参数

size

日志文件的大小。

size 指定为整数,后跟指定单位的其中一个可选字符串。

  • b - B(字节)

  • k - KB(1024 字节)

  • m - MB(10242 字节)

  • g - GB(10243 字节)

  • t - TB(10244 字节)

  • p - PB(10245 字节)

如果不指定单位,则 size 以字节为单位。单位字母不区分大小写。服务器仅读取单位字符串的第一个字母。

示例

当日志达到 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 指定存储轮换日志文件的目录的路径。

注意

如果省略此属性,则轮换的日志将保留在日志根目录中,该目录会随着日志轮换而无限增长。

参数

path

相对于服务器实例的根文件夹的日志文件存档文件夹的路径。

示例

存档到名为 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 指定在删除旧日志文件之前日志存档文件夹可以增长到的最大大小。

如果未指定此属性,则日志存档将无限制地增长。

参数

size

存档夹的大小(以字节为单位)。

size 指定为整数,后跟指定单位的其中一个可选字符串。

  • b - B(字节)

  • k - KB(1024 字节)

  • m - MB(10242 字节)

  • g - GB(10243 字节)

  • t - TB(10244 字节)

  • p - PB(10245 字节)

如果不指定单位,则 size 以字节为单位。单位字母不区分大小写。服务器仅读取单位字符串的第一个字母。

示例

当日志存档达到 5 MB 时收集它们。

--log-archive-max-size 5MB

仪表板使用

在仪表板中,在服务器实例的 Settings 选项卡中,在 Logging 下,将 Log Archive Max Size 设置为所需值。例如:5MB

语法

--log-handler format command

描述

log-handler 添加一个日志处理程序,以 command 指定的格式将日志数据写入 format 指定的应用程序。

服务器实例在启动时启动日志处理程序的实例。所有日志事件都被发送到日志处理程序的 STDIN 流。日志处理程序的 STDOUTSTDERR 流被捕获并写入 INSTANCE_ROOT/log/custom_logger_N.outINSTANCE_ROOT/log/custom_logger_N.err

参数

format

用于写入日志事件的格式。有效值为:

  • text/plain

  • text/json

  • text/xml

command

启动应用程序来处理日志事件。

示例

将日志事件发送到准备性能图的自定义 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 文件中记录事件的文本格式。如果不设置此属性,服务器将以纯文本形式写入日志数据。

有关日志记录的更多详细信息,请参阅 管理日志文件

参数

format

编写日志事件的格式。有效值为:

  • text/plain - 以纯文本形式记录数据。

  • text/json - 以 JSON 格式记录数据。

  • text/xml - 以 XML 格式记录数据。

示例

以 JSON 格式记录事件。

--main-log-format text/json

仪表板使用

在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:

--main-log-format text/json

语法

--profile state object

描述

objectprofile 时,on 会在 state 的主日志中记录服务器配置文件信息。默认的 stateoff,其中服务器不记录任何配置文件信息。您可以通过指定多个配置文件属性来记录多个对象的配置文件信息。

要在配置服务器时设置分析选项,请指定 profile 属性。如果更新已在运行的服务器的 profile 属性,则必须重新启动服务器才能使更新生效。要设置或更新已运行服务器的分析选项而不必重新启动服务器,请使用 mps-profile 命令。运行 mps-profile 将覆盖使用 profile 属性设置的任何分析选项。

有关日志记录的更多详细信息,请参阅 管理日志文件

注意

激活分析会对性能产生负面影响。

参数

state

标志控制服务器是否将配置文件信息写入主日志。有效状态为:

  • on - 日志配置文件信息。

  • off - 不记录配置文件信息。

object

要记录的信息。有效对象为:

  • server - 有关服务器接收的请求和工作进程池的信息

  • server.request - 有关服务器请求的信息,其中包括有关所请求的存档和发出请求的客户端的信息

  • server.request.archive - 请求中的存档信息

  • server.request.client - 有关发出请求的客户端的信息

  • server.workerserver.worker.pool - 有关工作进程池的信息

对象是分层的。例如,指定 server.request 意味着指定 server.request.archiveserver.request.client

如果不指定对象,服务器将记录所有对象的信息。

示例

记录所有对象的配置文件信息。

--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-cenable-graceful-shutdown,那么服务器将忽略 Ctrl+C 终端中断事件。仅当接收到程序终止信号或者系统关闭或重启时,服务器才会正常关闭。

示例

禁用 Ctrl+C 终端中断。

--disable-control-c

仪表板使用

在服务器实例的 Settings 选项卡中,Advanced 之下,指定 Additional Options 框中的属性设置。例如:

--disable-control-c

语法

--enable-graceful-shutdown

描述

如果服务器进程被终端中断信号中断或被程序终止信号终止,enable-graceful-shutdown 可以正常关闭服务器进程。当运行服务器的系统关闭或重新启动时,服务器将释放所有已签出的许可证。

如果同时设置了 disable-control-cenable-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 值指定的持续时间内强制终止。

参数

hr间隔中的小时数
min间隔中的分钟数
sec间隔中的秒数
fractSec间隔中秒数的小数部分

示例

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

版本历史记录

全部展开