首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在docker中处理haproxy的cpu配置?

如何在docker中处理haproxy的cpu配置?
EN

Stack Overflow用户
提问于 2021-01-20 23:05:15
回答 1查看 142关注 0票数 0

我想知道容器中的haproxy性能。为了简单起见,如果我有一个运行haproxy的虚拟机,使用这个cpu配置,我知道会发生什么:

代码语言:javascript
运行
复制
  nbproc 1
  nbthread 8
  cpu-map auto:1/1-8 0-7

如果我想为了测试目的而将(整个)配置移植到docker上,而不需要任何花哨的群集魔法,或者只是安装docker,这样我就可以理解事情是如何映射的,我可以想象cpu配置变得更简单,并且haproxy实例意味着可以扩展。我想我有两个问题:

你会在haproxy docker容器中配置cpu吗?或者你会在服务后面扩展容器吗?也许你两者都需要。

单个容器是否可以使用上述配置,就像它作为守护进程在系统上运行一样?docker / containerd会关心这个配置吗?

我知道有4个容器,每个容器都有自己的配置,cpu均匀地映射,这样做不会有规模,也没有任何意义:

代码语言:javascript
运行
复制
  nbproc 1
  nbthread 2
  cpu-map auto:1/1-2 0-1
代码语言:javascript
运行
复制
  nbproc 1
  nbthread 2
  cpu-map auto:1/3-4 2-3
代码语言:javascript
运行
复制
  nbproc 1
  nbthread 2
  cpu-map auto:1/5-6 4-5
代码语言:javascript
运行
复制
  nbproc 1
  nbthread 2
  cpu-map auto:1/7-8 6-7

但我想知道的是这种饱和度。haproxy / docker是如何处理这种cpu细微差别的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 19:04:25

我已经确认,使用haproxy提供的镜像在容器d下运行haproxy与在systemd下运行对服务的影响很小,甚至没有明显影响。在一个容器-d上运行--network host,没有对处理器和内存的限制,在最坏的情况下,我已经看到web外部延迟有2-3%的影响,实时流量的峰值约为50-60MB/秒,这本身取决于吞吐量和请求类型。在具有4 4GB内存(主机cpu为至强6130 Gold)和gig接口的8核vm上,内存利用率几乎相同。cpu性能也保持稳定,利用率有3-5%的潜在增长。这些测试是私有的和未发布的。

就cpu配置而言

代码语言:javascript
运行
复制
nbproc 1
  nbthread 8
  cpu-map auto:1/1-8 0-7
  master-worker

此配置在containerd和systemd之间1:1映射,并生成前面提到的结果。proc和线程将在containerd下启动,并按照您的预期运行。这约占总cpu的80-90% (800%),这代表峰值时不到1个满载的核心。所以这个容器在理论上可以用这种配置再扩展8倍,5到6倍以留出一些净空。

还要注意,这些性能数据中的任何波动都可能是由于我的环境造成的。这些测试是从一个跨越多个站点的真实环境中进行的,而不是一个我可以控制所有方面的试验台。还要注意,根据主机cpu和负载的不同,结果会有很大的不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65812155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档