有没有人在Docker容器环境中看到运行Redis的性能问题?
这是我注意到的......设置A:本地机器,传统Redis安装设置B:本地机器,使用规范Redis图像https://registry.hub.docker.com/_/redis/
我的本地计算机上有一个相同的HTTP服务器,其响应速度与请求/响应周期允许的速度一样快.
观察: - A可以维持B的吞吐量的大约2倍. - 当您进行基准测试时(从容器内),B与B的性能相同
因此,由于网络问题,这使我相信B比A慢:即在虚拟化环境中运行软件引入的网络中继正在产生重大的性能问题......
只是想知道是否有其他人注意到这样的事情?
Docker的默认网络选项--net=bridge引入了由于NAT数据包重写引起的开销,在高数据包速率时会引人注意.
通过使用--net=host,指示Docker不为容器创建单独的网络堆栈,允许完全访问主机网络接口,可以提高网络性能.
应该谨慎使用此选项,因为它允许容器进程像任何其他根进程一样打开低编号端口,并访问D-bus等本地网络服务,这可能导致容器中的进程能够执行意外操作.
简而言之:如果您知道自己在容器内运行的是安全的.如果您怀疑有不良或激进的行为 - 请勿这样做.