使用Docker运行Redis(性能问题)
有没有其他人见过在Docker容器环境中运行Redis的性能问题 以下是我注意到的。。。 安装A:本地计算机,传统Redis安装 设置B:本地计算机,使用规范Redis映像 我在本地机器上有一个相同的HTTP服务器,它以请求/响应周期允许的速度启动 意见: -A的吞吐量大约是B的2倍。 -B在进行基准测试时(从容器内)执行与A相同的操作 因此,这让我相信,由于网络问题,B比A慢:即,在虚拟化环境中运行软件引入的网络中继正在产生显著的性能问题使用Docker运行Redis(性能问题),redis,docker,Redis,Docker,有没有其他人见过在Docker容器环境中运行Redis的性能问题 以下是我注意到的。。。 安装A:本地计算机,传统Redis安装 设置B:本地计算机,使用规范Redis映像 我在本地机器上有一个相同的HTTP服务器,它以请求/响应周期允许的速度启动 意见: -A的吞吐量大约是B的2倍。 -B在进行基准测试时(从容器内)执行与A相同的操作 因此,这让我相信,由于网络问题,B比A慢:即,在虚拟化环境中运行软件引入的网络中继正在产生显著的性能问题 只是想知道是否有其他人注意到类似的情况?Docker的
只是想知道是否有其他人注意到类似的情况?Docker的默认网络选项,
--net=bridge
引入了NAT数据包重写带来的开销,这在高数据包速率下是显而易见的
通过使用--net=host
,指示Docker不要为容器创建单独的网络堆栈,允许完全访问主机网络接口,可以提高网络性能
但是,应该谨慎使用此选项,因为它允许容器进程像任何其他根进程一样打开编号较低的端口,并访问本地网络服务(如D-bus),这可能导致容器中的进程能够执行意外操作
简而言之:如果你知道你在容器内运行什么,它是安全的。如果你怀疑有不想要的或攻击性的行为-不要这样做。@joshula那么问题解决了吗?现在的吞吐量是一样的吗?只是好奇。thanks@joshula看来你的实验花了3分钟years@joshula看起来你的实验花了6年时间,我刚刚用--net=host测试过,我得到了34K RPS,没有16KRPS,没有docker的原生redis安装:40kRPS@joshula看来你的实验花了7年时间