其他人是否看到过在Docker容器环境中运行Redis的性能问题?
这就是我注意到的内容...设置A:本地计算机,传统的Redis安装设置B:本地计算机,使用规范的Redis镜像https://registry.hub.docker.com/_/redis/
我在本地计算机上有一个相同的HTTP服务器,它的启动/请求/响应周期所允许的速度最快。
观察结果:-A可以承受大约B两倍的吞吐量。-当您进行基准测试时(在容器内),B的性能与A相同
因此,这使我相信,由于网络问题,B的速度比A慢:即,在虚拟化环境中运行软件引入的网络中继正在造成严重的性能问题...
只是想知道是否有人注意到了这样的事情?
Docker的默认网络选项--net=bridge
由于NAT数据包重写而引入了开销,在高数据包速率下很明显。
可以通过使用--net=host
指示Docker不要为容器创建单独的网络堆栈,从而允许对主机网络接口的完全访问来提高网络性能。
但是,应谨慎使用此选项,因为它允许容器进程像其他任何根进程一样打开低编号的端口,并访问D-bus等本地网络服务,这可能导致容器中的进程能够执行意外的操作。
简而言之:如果您知道容器内部正在运行什么,那是安全的。如果您怀疑有不良或攻击性的行为,请不要这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句