2.5. 资源
配置 资源的 requests 和 limits,以控制 AMQ Streams 容器的资源。您可以为 内存和
cpu
资源指定请求和限值。请求应该足以确保 Kafka 的稳定性能。
如何在生产环境中配置资源取决于多个因素。例如,应用可能会共享 OpenShift 集群中的资源。
对于 Kafka,部署的以下方面可能会影响您需要的资源:
- 信息吞吐量和大小
- 处理消息的网络线程数量
- 生成者和消费者的数量
- 主题和分区数量
为资源请求指定的值保留,并始终可供容器使用。资源限值指定给定容器可消耗的最大资源。请求和限制之间的数量不会被保留,且可能并不总是可用。容器只能在资源可用时最多使用限制。资源限值是临时的,可以重新分配。
资源请求和限值
如果您在设置限制时没有设置请求,或反之,OpenShift 会将相同的值用于限制和请求。为资源设置相等的请求和限值保证服务质量,因为 OpenShift 不会终止容器,除非超过其限值。
您可以为一个或多个支持的资源配置资源请求和限值。
资源配置示例
Topic Operator 和 User Operator 的资源请求和限值在 Kafka
资源中设置。
如果资源请求超过 OpenShift 集群中的可用可用资源,则不会调度该容器集。
AMQ Streams 使用 OpenShift 语法来指定 内存
和 cpu
资源。有关在 OpenShift 中管理计算资源的更多信息,请参阅管理容器的计算资源。
- 内存资源
在配置内存资源时,请考虑组件的总要求。
Kafka 在 JVM 中运行,并使用操作系统页面缓存在写入磁盘前存储消息数据。Kafka 的内存请求应该适合 JVM 堆和页面缓存。您可以配置
jvmOptions
属性 来控制最小和最大堆大小。其他组件不依赖于页面缓存。您可以在不配置
jvmOptions
的情况下,控制堆大小的情况下配置内存资源。内存请求和限值以兆字节、GB、兆字节和千兆字节指定。在规格中使用以下后缀:
-
M
表示 MB -
G
表示 GB -
Mi
代表 mebibytes -
Gi
代表 gibibytes
使用不同内存单元的资源示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关内存规格和其他支持的单元的详情,请参阅收集 内存。
-
- CPU 资源
CPU 请求应该足以随时提供可靠的性能。CPU 请求和限制以 cores 或 millicpus/millicores 的形式指定。
CPU 内核指定为整数(
5
个 CPU 内核)或十进制(2.5
个 CPU 内核)。1000 millicore 与1
个 CPU 内核相同。CPU 单元示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 1 个 CPU 内核的计算能力可能会因部署 OpenShift 的平台而异。
有关 CPU 规格的更多信息,请参阅 CPU 机制。