跳到主要内容

使用系统缩放参数

您可以使用系统缩放参数来增加某些系统缩放限制。当您创建软件代理实例时,可以通过配置键指定系统缩放参数(参见使用配置键设置缩放参数)。您还可以在软件代理运行时更改系统缩放参数(参见扩展现有单个软件事件代理和扩展现有HA组)。

有关最低系统资源需求的详细信息,请参见系统资源需求。

要查看系统缩放参数的当前值,请在Solace CLI中运行show system命令,并查看输出中的缩放部分:

solace> show system

系统运行时间:1天0小时45分钟21秒
上次重启原因:用户请求

缩放:
最大桥接数:25
最大连接数:100
最大队列消息数:1亿
最大Kafka桥接数:0
最大Kafka代理连接数:0
最大订阅数:50万

主题路由:
订阅异常:启用
订阅异常延迟:启用

您可以配置以下系统缩放参数:

  • 最大客户端连接数
  • 最大队列消息数
  • 最大VPN桥接数
  • 最大订阅数
  • 最大Kafka桥接数
  • 最大Kafka代理连接数

增加缩放参数会导致事件代理立即重启。

如果您增加这些系统缩放参数的值,事件代理将需要额外的资源。有关更多信息,请参见额外的系统资源。

  • max-connections解耦的缩放参数可以独立缩放。独立缩放参数允许在不升级到更大的软件事件代理的情况下灵活扩展部署。

  • 如果您没有为独立缩放参数提供特定值,它将默认为您选择的max-connections值的适当值。

最大客户端连接数

您可以使用max-connections系统缩放参数增加事件代理支持的并发客户端连接数。默认情况下,事件代理限制为100个并发客户端连接,但可以配置最多20万个连接,假设提供了足够的系统资源。

要独立于max-connections缩放参数,您必须将PubSub+事件代理升级到版本10.7.1或更高版本。有关各个缩放参数的发布时间表,请参阅事件代理发布。

PubSub+代理默认并发客户端连接数最大可能并发客户端连接数
PubSub+标准版1001,000
PubSub+企业版100200,000

有关默认最大客户端连接值,请参见配置键中的maxconnectioncount

对于最多100个客户端连接的软件事件代理,以下功能不可用:

  • 动态消息路由(DMR)
  • 多节点路由(MNR)

要使用这些功能,请为您的软件事件代理配置更高的最大客户端连接数。

对于PubSub+标准版,如果您将max-connections系统缩放参数设置得高于支持的最大值,代理将无法启动。

配置为HA组中的监控节点的代理,当前客户端连接数无法更改。

一些相关的系统限制(例如,最大客户端用户名数)会自动缩放到适用于允许的客户端连接数的值;有关这些系统限制的更多信息,请参见系统限制和警报电子表格(适用于设备和PubSub+企业客户的Solace产品网站)。

以下类型的客户端使用的连接计入max-connections的总数:

  • 消息客户端(SMF、MQTT、AMQP或REST):每个1个连接

  • 内部客户端(VPN、VPN桥接、Kafka桥接发送器或接收器或DMR链接每个VPN):每个1个连接

为容器镜像设置并发打开文件数

为确保事件代理的可靠运行,当增加最大客户端连接数时,还必须增加每个进程并发打开文件的最大数量。容器进程的并发打开文件的最大数量由nofiles资源限制控制。大多数容器运行时支持在创建容器时使用ulimit参数设置rlimit值。例如,在Docker Engine和Podman中,对于10,000个客户端连接,请在创建容器时添加--ulimit nofile=2448:72992命令行参数。

资源限制最大客户端连接数
1001,000
------
nofiles2448:37392

为方便使用,如果资源可用,我们建议所有实例使用2500:500000。

最大队列消息数

您可以使用max-queue-messages系统缩放参数增加事件代理支持的队列消息数(指为消费者提供的排队消息的引用)。

对于PubSub+事件代理版本10.8.1及更高版本,对于新的代理实例,默认的最大队列消息数由max-connections系统缩放参数的值控制:

  • max-connections为100时,默认的最大队列消息数为1亿。

  • max-connections为1K或更高时,默认的最大队列消息数为2.4亿。

PubSub+代理最大队列消息数
PubSub+标准版2.4亿
PubSub+企业版3亿

有关默认最大队列消息值,请参见配置键中的maxqueuemessagecount

在生产环境中运行具有1亿队列消息的事件代理不推荐,因为它可能导致性能问题。

对于PubSub+标准版,如果您将max-queue-messages系统缩放参数设置得高于支持的最大值,代理将无法启动。

配置为HA组中的监控节点的代理,最大队列消息数无法更改。

最大VPN桥接数

您可以使用max-bridges系统缩放参数增加单个事件代理的VPN桥接数。VPN桥接消耗一个客户端连接。因此,不要将max-bridges值配置得高于max-connections

这个独立缩放参数适用于PubSub+事件代理版本10.7.1及更高版本。

最大VPN桥接订阅值:

  • max-bridges值为5000时,为10万。

  • max-bridges值为25或500时,为2万。

PubSub+代理最大可能VPN桥接数
PubSub+标准版500
PubSub+企业版5000

有关默认最大VPN桥接值,请参见配置键中的maxbridgecount

由于max-bridges依赖于max-connections,例如,如果您将max-bridges从25增加到5000,而max-connections保持100,则可能无法分配所有5000个VPN桥接。在这种情况下,Solace CLI会显示警告。

connect-via限制为500个出站VPN桥接连接。这意味着在事件网格中,5000个VPN桥接的配置必须作为进入核心事件代理的入站连接完成。

最大订阅数

您可以使用max-subscriptions系统缩放参数增加单个事件代理的订阅数。这有助于实现在事件网格中部署不同大小的事件代理的灵活性,而不必担心超过较小事件代理的订阅限制。请注意,您必须为较小的事件代理分配额外的RAM以容纳更大的订阅表。每个客户端至少需要一个订阅。因此,不要将max-connections值配置得高于max-subscriptions

这个独立缩放参数适用于PubSub+事件代理版本10.8.1及更高版本。

PubSub+代理最大可能订阅数
PubSub+标准版50万
PubSub+企业版500万

有关默认最大订阅值,请参见配置键中的maxsubscriptioncount

由于max-connections依赖于max-subscriptions,如果您的max-connections例如为100,您将max-subscriptions从5万增加到50万,则可能无法分配所有50万订阅。在这种情况下,Solace CLI会显示警告。

对于PubSub+事件代理版本低于10.8.1,同一网络中的所有事件代理必须具有相同的max-subscriptions值;否则,事件代理上的订阅资源限制可能会超出,消息转发将不可靠。

最大Kafka桥接数

您可以使用max-kafka-bridges系统缩放参数增加事件代理支持的Kafka桥接数(Kafka发送器+Kafka接收器)。默认情况下,事件代理限制为0个桥接,但可以配置最多200个桥接,假设提供了足够的系统资源。此外,请记住不要将max-kafka-bridges值设置得高于系统设置的max-connections值。

PubSub+代理最大可能Kafka桥接数
PubSub+标准版或企业版200

有关默认最大订阅值,请参见配置键中的maxkafkabridgecount

配置为HA组中的监控节点的代理,最大Kafka桥接数无法更改。

最大Kafka代理连接数

您可以使用max-kafka-broker-connections系统缩放参数增加事件代理支持的并发Kafka代理连接数。默认情况下,事件代理限制为0个并发Kafka代理连接,但可以配置最多10000个连接,假设提供了足够的系统资源。

您可以预期每个Kafka发送器和接收器将需要大约一个连接,这些连接来自他们配置发送消息或接收消息的Kafka集群中的每个Kafka代理的预算。如果不同的发送器和接收器连接到相同的Kafka集群,这些连接是相互独立的,并分别计入此限制。在这种情况下,您应该使用具有更多队列或主题绑定的通用发送器或接收器来帮助扩展。绑定的数量不影响所需的连接数。

在决定您的部署将支持的最大并发Kafka代理连接数时,您必须确保您的平台有足够的进程ID(PID)可用。Kafka桥接要求1000 +您为max-kafka-broker-connections配置的值的PID可用。有关在Kubernetes中设置每个节点和每个Pod的PID限制的更多信息,请参见进程ID限制和预留。

PubSub+代理最大可能并发Kafka代理连接数
PubSub+标准版或企业版10,000

有关默认最大订阅值,请参见配置键中的maxkafkabrokerconnectioncount

配置为HA组中的监控节点的代理,最大Kafka代理连接数无法更改。

如果事件代理超出了为最大Kafka代理连接数配置的值,事件代理上的Kafka发送器和接收器可能会因“使用中的其他代理连接太多”或“需要的代理连接太多”等故障原因而操作性下降。为了防止这种情况,您可以使用show kafkashow message-vpn <vpn-name> kafka CLI命令监控当前的Kafka代理连接数(参见监控Kafka桥接)。此外,当事件代理接近最大值时,会生成SYSTEM_KAFKA_BROKER_CONNECTIONS_HIGHVPN_KAFKA_BROKER_CONNECTIONS_HIGH事件。有关更多信息,请参见Solace PubSub+ Syslog事件。

多个代理考虑

如果您在事件网格中有多个事件代理,增加缩放参数时必须注意以下考虑:

  • 除了HA组设置外,每个软件事件代理在事件网格中的系统缩放参数值可以任意不同。

  • 对于max-subscriptions特别地,由于SMRP的分配可能是不可预测的,如果您在一个事件代理上增加到更高的订阅限制,您必须尽快将事件网格中的其他事件代理更新为相同的值。

额外系统资源

系统缩放参数的最低(默认)值的资源需求列在系统资源需求中。

如果您增加任何系统缩放参数的值,事件代理将需要额外的资源。要查看系统资源需求如何随着更高值的系统缩放参数而变化,请使用系统资源计算器。