配置说明

ms_coordinator.json启动配置文件

ms_coordinator.json启动配置文件样例如下所示,参数解释请参见ms_coordinator.json启动配置文件参数解释
{
    "http_config": {
        "predict_ip": "127.0.0.1",
        "predict_port": "1025",
        "manage_ip": "127.0.0.1",
        "manage_port": "1026",
        "server_thread_num": 1,
        "client_thread_num": 1,
        "http_timeout_seconds": 10,
        "keep_alive_seconds": 180,
        "server_name": "MindIE-MS",
        "user_agent": "Coordinator/1.0"
    },
    "request_limit": {
        "single_node_max_requests": 1000,
        "max_requests": 10000,
        "body_limit": 10
    },
    "metrics_config": {
        "enable": false,
        "trigger_size": 100
    },
    "prometheus_metrics_config": {
        "reuse_time": 3
    },
    "exception_config": {
        "max_retry": 5,
        "schedule_timeout": 60,
        "first_token_timeout": 60,
        "infer_timeout": 300,
        "tokenizer_timeout": 300
    },
    "log_info": {
        "log_level": "INFO",
        "to_file": true,
        "to_stdout": true,
        "run_log_path": "./logs/ms_coordinator_run_log.txt",
        "operation_log_path": "./logs/ms_coordinator_operation_log.txt",
        "max_log_str_size": 4096,
        "max_log_file_size": 20,
        "max_log_file_num": 10
    },
    "digs_scheduler_config": {
        "deploy_mode": "pd_separate",
        "scheduler_type": "digs_scheduler",
        "algorithm_type": "load_balance",
        "cache_size": "100",
        "slots_thresh": "0.05",
        "block_thresh": "0.05",
        "max_schedule_count": "10000",
        "reordering_type": "1",
        "max_res_num": "5000"
    },
    "tls_config": {
        "controller_server_tls_enable": true,
        "controller_server_tls_items": {
            "ca_cert" : "./security/controller/security/certs/ca.pem",
            "tls_cert": "./security/controller/security/certs/cert.pem",
            "tls_key": "./security/controller/security/keys/cert.key.pem",
            "tls_passwd": "./security/controller/security/pass/key_pwd.txt",
            "kmcKsfMaster": "./security/controller/tools/pmt/master/ksfa",
            "kmcKsfStandby": "./security/controller/tools/pmt/standby/ksfb",
            "tls_crl": ""
        },
        "request_server_tls_enable": true,
        "request_server_tls_items": {
            "ca_cert" : "./security/request/security/certs/ca.pem",
            "tls_cert": "./security/request/security/certs/cert.pem",
            "tls_key": "./security/request/security/keys/cert.key.pem",
            "tls_passwd": "./security/request/security/pass/key_pwd.txt",
            "kmcKsfMaster": "./security/request/tools/pmt/master/ksfa",
            "kmcKsfStandby": "./security/request/tools/pmt/standby/ksfb",
            "tls_crl": ""
        },
        "mindie_client_tls_enable": true,
        "mindie_client_tls_items": {
            "ca_cert" : "./security/mindie/security/certs/ca.pem",
            "tls_cert": "./security/mindie/security/certs/cert.pem",
            "tls_key": "./security/mindie/security/keys/cert.key.pem",
            "tls_passwd": "./security/mindie/security/pass/key_pwd.txt",
            "kmcKsfMaster": "./security/mindie/tools/pmt/master/ksfa",
            "kmcKsfStandby": "./security/mindie/tools/pmt/standby/ksfb",
            "tls_crl": ""
        },
        "mindie_mangment_tls_enable": true,
        "mindie_mangment_tls_items": {
            "ca_cert" : "./security/mindie_mgmt/security/certs/ca.pem",
            "tls_cert": "./security/mindie_mgmt/security/certs/cert.pem",
            "tls_key": "./security/mindie_mgmt/security/keys/cert.key.pem",
            "tls_passwd": "./security/mindie_mgmt/security/pass/key_pwd.txt",
            "kmcKsfMaster": "./security/mindie_mgmt/tools/pmt/master/ksfa",
            "kmcKsfStandby": "./security/mindie_mgmt/tools/pmt/standby/ksfb",
            "tls_crl": ""
        }
    }
}

ms_coordinator.json启动配置文件参数解释

ms_coordinator.json配置文件中各个字段解释如表1所示,用户可根据具体场景进行配置。

表1 ms_coordinator.json启动配置文件参数说明

参数名称

支持特性

取值范围

配置说明

http_config:通信配置

predict_ip

PD分离

Prefix Cache(单机)

-

必填;默认值为"127.0.0.1"

推理IP。

用户侧接口的侦听IP。

predict_port

PD分离

Prefix Cache(单机)

[1024,65535]

必填;默认值为"1025"。

推理端口。

用户侧接口的侦听端口。

manage_ip

PD分离

Prefix Cache(单机)

-

必填;默认值为"127.0.0.1"。

管理IP

集群内通信接口的侦听IP。

manage_port

PD分离

Prefix Cache(单机)

[1024,65535]

必填;默认值为"1026"。

管理端口。

集群内通信接口的侦听端口。

server_thread_num

PD分离

Prefix Cache(单机)

[1,10000]

必填;默认值为1。

HTTP Server线程池数量;建议不超出系统最大线程数的1/4。

client_thread_num

PD分离

Prefix Cache(单机)

[1,10000]

必填;默认值为1。

HTTP Client线程池数量;建议不超出系统最大线程数的1/4。

http_timeout_seconds

PD分离

Prefix Cache(单机)

[0,600],单位秒。

必填;默认值为10秒。0表示立即触发超时。

HTTP通信超时时间。

keep_alive_seconds

PD分离

[0,3600],单位秒。

必填;默认值为180秒。0表示关闭长链接的保活检查。

长链接的保活检查时间。保活检查时间内无消息,将关闭长链接。

说明:

建议用户配置该值大于0,防止调度器被Dos攻击。

server_name

PD分离

Prefix Cache(单机)

-

必填;默认值为MindIE-MS。

服务器名称。

user_agent

PD分离

Prefix Cache(单机)

-

必填;默认值为Coordinator/1.0。

软件版本号。

request_limit:请求限制

single_node_max_requests

PD分离

Prefix Cache(单机)

[1,2000]

必填;默认值为1000。

单个MindIE Server节点可处理的最大请求数量;该参数配置的值不能超过MindIE Server能支持的最大限制。

如设置环境变量MINDIE_MS_COORDINATOR_CONFIG_SINGLE_NODE_MAX_REQ,则优先读取环境变量的值。

max_requests

PD分离

Prefix Cache(单机)

[1,90000]

必填;默认值为10000。

可处理的最大请求数量。

  • PD分离场景:建议single_node_max_requests * P节点数量 + 1000左右余量。
  • PD混部场景:建议single_node_max_requests * 节点数量 + 1000左右余量。

如设置环境变量MINDIE_MS_COORDINATOR_CONFIG_MAX_REQ,则优先读取环境变量的值。

说明:
  • 当请求数超过该值,请求会被拒绝。
  • 调度器允许最大的外部链接数为3 * max_requests。超过链接上限后,调度器不再允许被外部连接,防止Dos攻击。

body_limit

PD分离

Prdfix Cache(单机)

[1, 20],单位MB。

必填;默认值为10。

单条请求消息体的字节数上限。如果请求消息体大小超过该值,请求将发送失败。

metrics_config:性能统计

enable

PD分离

Prefix Cache(单机)

  • true:开启。
  • false:关闭。

必填;默认值为false。

是否开启性能统计。

该参数的功能为辅助定位问题,打开此功能有可能影响业务性能,建议用户在正常业务场景下关闭此功能。

trigger_size

PD分离

Prefix Cache(单机)

[1,10000]

必填;当enable为true时有效。默认值为100。

触发性能统计的请求数。

prometheus_metrics_config:服务化监控指标

reuse_time

PD分离

Prefix Cache(单机)

[1,100],单位秒。

必填;默认值为3。

监控指标查询接口使用。如果距离上一轮查询时间小于reuse_time,则复用上一轮监控指标的时间;复用结果的查询不会刷新上一轮查询时间。

exception_config:异常配置

max_retry

PD分离

Prefix Cache(单机)

[0,10]

必填;默认值为5。

通信异常最大重试次数。

schedule_timeout

PD分离

Prefix Cache(单机)

[0,3600],单位秒。

必填;默认值为60;0表示关闭调度的超时检查。

调度超时时间,请求在调度超时时间内没完成调度,将向用户返回错误。

first_token_timeout

PD分离

Prefix Cache(单机)

[0,3600],单位秒。

必填;默认值为60;0表示关闭首token的超时检查。

首token超时时间,请求在首token的超时时间内没完成首token推理,将向用户返回错误。

infer_timeout

PD分离

Prefix Cache(单机)

[0,3600],单位秒。

必填;默认值为300;0表示关闭推理的超时检查。

请求推理的超时时间,请求在推理的超时时间内没完成全部推理,将向用户返回错误。

tokenizer_timeout

PD分离

[0,3600],单位秒。

必填;默认值为300;0表示关闭计算token的超时检查。

计算token的超时时间,请求在计算token的超时时间内没完成tokenizer任务,将向用户返回错误。

log_info:日志配置

log_level

PD分离

Prefix Cache(单机)

  • CRITICAL
  • ERROR
  • WARNING
  • INFO
  • DEBUG

必填;默认值为INFO。

设置日志级别。

如设置环境变量MINDIE_LOG_LEVEL或MINDIEMS_LOG_LEVEL,则优先读取环境变量的值。

说明:

业务性能受参数影响较大,参数配置为ERROR时性能最佳,配置为DEBUG时性能最差,两者性能相差十倍左右。

to_file

PD分离

Prefix Cache(单机)

  • true:输出到文件。
  • false:不输出到文件。

必填;默认值为true。

是否输出到文件。

如设置环境变量MINDIE_LOG_TO_FILE,则优先读取环境变量的值。

to_stdout

PD分离

Prefix Cache(单机)

  • true:输出到标准输出流。
  • false:不输出到标准输出流。

必填;默认值为true。

是否输出到标准输出流。

如设置环境变量MINDIE_LOG_TO_STDOUT,则优先读取环境变量的值。

run_log_path

PD分离

Prefix Cache(单机)

-

必填,当to_file为true时生效。

运行日志路径,要求该文件所在的路径真实存在且可读,运行时会自动创建文件。

operation_log_path

PD分离

Prefix Cache(单机)

-

必填,当to_file为true时生效。

审计日志路径,要求该文件所在的路径真实存在且可读,运行时会自动创建文件。

max_log_str_size

PD分离

Prefix Cache(单机)

[128,4096]

必填;默认值为4096。

单条日志最大长度。

max_log_file_size

PD分离

Prefix Cache(单机)

[1,100],单位MB。

必填;默认值为20。

单个日志文件存储上限。

max_log_file_num

PD分离

Prefix Cache(单机)

[2,64]

必填;默认值为10。

最大日志文件存储数量。

digs_scheduler_config:调度器配置

deploy_mode

PD分离

Prefix Cache(单机)

  • PD分离:

    pd_separate:PD分离模式部署;

  • Prefix Cache(单机)

    single_node:单机部署模式。

必填;默认值为"pd_separate"。

部署模式。

scheduler_type

PD分离

Prefix Cache(单机)

  • PD分离:

    digs_scheduler:digs调度器;

  • Prefix Cache(单机)

    default_scheduler:默认调度器。

必填;默认值为"digs_scheduler"。

调度器类型。

  • deploy_mode为"pd_separate"时,此值必须为"digs_scheduler";
  • deploy_mode为"single_node"时,此值必须为"default_scheduler"。

algorithm_type

PD分离

Prefix Cache(单机)

  • PD分离:

    load_balance:负载均衡;推理请求调度分配给资源较多的实例。

  • Prefix Cache(单机)

    cache_affinity:Cache亲和算法;OpenAI多轮会话场景下,推理请求调度给处理过历史轮次会话的实例。

必填;默认值为"load_balance"。

调度算法。

  • scheduler_type为"digs_scheduler"时,此值必须为"load_balance";
  • scheduler_type为"default_scheduler"时,此值必须为"cache_affinity"。

cache_size

Prefix Cache(单机)

["1", "10000"]

algorithm_type为"cache_affinity"时必填;默认值为"100"。

Cache缓存上限 。(仅支持Prefix Cache算法)

slots_thresh

Prefix Cache(单机)

["0.0", "1.0"]

algorithm_type为"cache_affinity"时必填;默认值为"0.05"。

可用slot占总slot的比例,slots资源预警线 。(仅支持Prefix Cache算法)

block_thresh

Prefix Cache(单机)

["0.0", "1.0"]

algorithm_type为"cache_affinity"时必填;默认值为"0.05"。

可用block占总block的比例,block 资源预警线。 (仅支持Prefix Cache算法)

max_schedule_count

PD分离

["1", "90000"]

scheduler_type为"digs_scheduler"时必填;默认值为"10000"。

可以同时调度的最大请求数量,建议与max_requests保持一致。(仅支持PD分离负载均衡算法)

reordering_type

PD分离

  • "1":fcfs,先到先调度;
  • "2":sjf,短序列先调度;
  • "3":ljf,长序列先调度。

scheduler_type为"digs_scheduler"时必填;默认值为"1"。

max_res_num

PD分离

["1", "10000"]

scheduler_type为"digs_scheduler"时必填;默认值为"5000"。

调度器可注册的最大节点数量。

tls_config:证书配置

调度器(Coordinator)的管理端口通信证书配置

controller_server_tls_enable

PD分离

Prefix Cache(单机)

与MindIE MS Coordinator管理端口的通信,是否开启tls校验。

建议用户打开,确保控制器(Controller)或用户与管理端口通信安全。如果关闭则存在较高的网络安全风险。

必填;默认值为true。

ca_cert

PD分离

Prefix Cache(单机)

ca根证书路径。

开启tls校验时必填。

tls_cert

PD分离

Prefix Cache(单机)

tls证书路径。

开启tls校验时必填。

tls_key

PD分离

Prefix Cache(单机)

经口令加密的tls私钥证书路径。

开启tls校验时必填。

tls_passwd

PD分离

Prefix Cache(单机)

加密tls私钥证书的口令,经KMC加密后,写入的密文路径。

开启tls校验时必填。

kmcKsfMaster

PD分离

Prefix Cache(单机)

KMC加密的根密钥路径。

开启tls校验时必填。

kmcKsfStandby

PD分离

Prefix Cache(单机)

KMC加密的工作密钥路径。

开启tls校验时必填。

tls_crl

PD分离

Prefix Cache(单机)

吊销的证书列表路径。

开启tls校验时必填。

证书吊销列表crl文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

调度器(Coordinator)的数据端口与用户的通信证书配置

request_server_tls_enable

PD分离

Prefix Cache(单机)

接受推理请求的输入,通信是否开启tls校验。

建议用户打开,确保与推理用户的通信安全。如果关闭则存在较高的网络安全风险。

必填;默认值为true。

ca_cert

PD分离

Prefix Cache(单机)

ca根证书路径。

开启tls校验时必填。

tls_cert

PD分离

Prefix Cache(单机)

tls证书路径。

开启tls校验时必填。

tls_key

PD分离

Prefix Cache(单机)

经口令加密的tls私钥证书路径。

开启tls校验时必填。

tls_passwd

PD分离

Prefix Cache(单机)

加密tls私钥证书的口令,经KMC加密后,写入的密文路径。

开启tls校验时必填。

kmcKsfMaster

PD分离

Prefix Cache(单机)

KMC加密的根密钥路径。

开启tls校验时必填。

kmcKsfStandby

PD分离

Prefix Cache(单机)

KMC加密的工作密钥路径。

开启tls校验时必填。

tls_crl

PD分离

Prefix Cache(单机)

吊销的证书列表路径。

开启tls校验时必填。

证书吊销列表crl文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

调度器(Coordinator)与MindIE-Server数据端口的通信证书配置

mindie_client_tls_enable

PD分离

Prefix Cache(单机)

MindIE Server的通信,是否开启tls校验。

建议用户打开,确保与MindIE Server的通信安全。如果关闭则存在较高的网络安全风险。

必填;默认值为true。

ca_cert

PD分离

Prefix Cache(单机)

ca根证书路径。

开启tls校验时必填。

tls_cert

PD分离

Prefix Cache(单机)

tls证书路径。

开启tls校验时必填。

tls_key

PD分离

Prefix Cache(单机)

经口令加密的tls私钥证书路径。

开启tls校验时必填。

tls_passwd

PD分离

Prefix Cache(单机)

加密tls私钥证书的口令,经KMC加密后,写入的密文路径。

开启tls校验时必填。

kmcKsfMaster

PD分离

Prefix Cache(单机)

KMC加密的根密钥路径。

开启tls校验时必填。

kmcKsfStandby

PD分离

Prefix Cache(单机)

KMC加密的工作密钥路径。

开启tls校验时必填。

tls_crl

PD分离

Prefix Cache(单机)

吊销的证书列表路径。

开启tls校验时必填。

证书吊销列表crl文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

调度器(Coordinator)与MindIE-Server管理端口的通信证书配置

mindie_mangment_tls_enable

PD分离

Prefix Cache(单机)

接受用户查询服务化监控指标的通信,是否开启tls校验。

建议用户打开,确保与监控指标用户的通信安全。如果关闭则存在较高的网络安全风险。

必填;默认值为true。

ca_cert

PD分离

Prefix Cache(单机)

ca根证书路径。

开启tls校验时必填。

tls_cert

PD分离

Prefix Cache(单机)

tls证书路径。

开启tls校验时必填。

tls_key

PD分离

Prefix Cache(单机)

经口令加密的tls私钥证书路径。

开启tls校验时必填。

tls_passwd

PD分离

Prefix Cache(单机)

加密tls私钥证书的口令,经KMC加密后,写入的密文路径。

开启tls校验时必填。

kmcKsfMaster

PD分离

Prefix Cache(单机)

KMC加密的根密钥路径。

开启tls校验时必填。

kmcKsfStandby

PD分离

Prefix Cache(单机)

KMC加密的工作密钥路径。

开启tls校验时必填。

tls_crl

PD分离

Prefix Cache(单机)

吊销的证书列表路径。

开启tls校验时必填。

证书吊销列表crl文件路径,要求该文件真实存在且可读。如为空,则不进行吊销校验。

环境变量

当前调度器(Coordinator)支持的环境变量如下所示。

表2 Coordinator支持的环境变量

环境变量名称

含义

MINDIE_MS_COORDINATOR_CONFIG_FILE_PATH

ms_coordinator配置文件的读取路径。

MINDIE_MS_COORDINATOR_CONFIG_SINGLE_NODE_MAX_REQ

单个节点可处理的最大请求数量。

MINDIE_MS_COORDINATOR_CONFIG_MAX_REQ

可处理的最大请求数量。

MINDIEMS_LOG_LEVEL

说明:

优先使用MINDIE_LOG_LEVEL设置日志等级,当前保留MINDIEMS_LOG_LEVEL是为了兼容旧版本配置方式。

若MINDIE_LOG_LEVEL设置为空则使用MINDIEMS_LOG_LEVEL。

用户可动态设置MindIE MS客户端输出的日志等级。

默认值为空,环境变量的优先级高于表1中log_level参数。日志级别如下所示:

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

MINDIE_LOG_LEVEL

默认值为空。统一设置MindIE各组件日志级别。如果设置环境变量,将覆盖表1中log_level参数。详情请参见日志配置

MINDIE_LOG_TO_FILE

默认值为空。统一设置MindIE各组件日志是否写入文件。如果设置环境变量,将覆盖表1中to_file参数。详情请参见日志配置

MINDIE_LOG_TO_STDOUT

默认值为空。统一设置MindIE各组件日志是否打屏。如果设置环境变量,将覆盖表1中to_stdout参数。详情请参见日志配置

MINDIE_LOG_VERBOSE

默认值为空。统一设置MindIE各组件日志中是否加入可选日志内容。完整调试日志格式:[date time] ([pid] [tid] [组件名称] [大写日志级别] [file:line]) : [error code] [子组件名称] log message,()内为可选内容。详情请参见日志配置

MINDIE_CHECK_INPUTFILES_PERMISSION

用户可设置是否需要检查外部挂载文件,具体包括ms_coordinator.json以及证书相关文件。默认值为空,表示需要做权限校验。

  • 0:对外部挂载文件不做权限校验。
  • 非0:对外部挂载文件做权限校验。
说明:

当用户使用MINDIE_MS_COORDINATOR_CONFIG_FILE_PATH设置配置文件路径时,ms_coordinator.json为外部挂载文件。

HSECEASY_PATH

默认值为空。设置KMC解密工具的依赖库路径。开启tls校验时必须设置。