使用Docker运行Redis(性能问题)

有没有其他人看到在Docker容器环境中运行Redis的性能问题?

这是我注意到的…安装程序A:本地机器,传统的Redis安装设置B:本地机器,使用规范的Redis镜像https://registry.hub.docker.com/_/redis/

我的本地机器上有一个相同的HTTP服务器,它的请求/响应周期允许的速度会很快。

观察结果: – A可以维持B的吞吐量的大约2倍。 – 当您进行基准testing时(从容器内)B执行相同的A,

所以,这导致我相信,由于networking问题,B比A更慢:即在虚拟环境中运行软件引入的networking中继正在产生重大的性能问题。

只是想知道有没有人注意到这样的事情?

Docker的默认networking选项--net=bridge引入了由于NAT数据包重写导致的开销,高分组速率显而易见。

通过使用--net=host可以提高networking性能,指示Docker不为容器创build单独的networking堆栈,从而允许完全访问主机networking接口。

这个选项应该小心使用,因为它允许容器进程像任何其他根进程一样打开低编号的端口,并访问像D-bus这样的本地networking服务,这会导致容器中的进程能够做出意想不到的事情。

简而言之:如果你知道你在容器内运行的是安全的。 如果您怀疑有害或侵略行为 – 不要这样做。