Docker容器连接到SQL Server时的网络延迟

时间:2019-10-08 01:13:06

标签: sql-server docker dbatools

我有一个在docker容器中运行的python flask应用程序。我正在使用Test-DbaNetworkLatency测试我的应用程序和SQL Server(在内部运行)之间的网络延迟。我发现从docker容器运行时网络延迟非常慢,但是在Mac主机上运行时网络延迟非常快。 docker容器基于ubuntu,我在其上安装了powershellTest-DbaNetworkLatency正在从powershell运行。我还在本地Mac OS上安装了powershell

我本地的结果是:

ExecutionCount     : 1
Total              : 220.91 ms
Average            : 220.91 ms
ExecuteOnlyTotal   : 154.21 ms
ExecuteOnlyAverage : 154.21 ms
NetworkOnlyTotal   : 66.69 ms

但是docker容器的结果是:

ExecutionCount     : 1
Total              : 1.23 s
Average            : 1.23 s
ExecuteOnlyTotal   : 282.52 ms
ExecuteOnlyAverage : 282.52 ms
NetworkOnlyTotal   : 946.88 ms

您可以看到从docker运行时存在较大的网络延迟。 Docker有什么问题吗?

如果我从容器和本地ping实例,则没有太大区别。但是当从容器和本地发送sql查询时,我确实看到性能不同。这就是为什么我需要Test-DbaNetworkLatency来测试网络延迟的原因。

经过一些测试,我发现如果将命令Test-DbaNetworkLatency放在pwsh -Command "Test-DbaNetworkLatency ... "中,将会非常慢。但是,如果我运行pwsh切换到powershell命令,则它的运行速度将与本地命令一样快。但是,如何定义一个dockerfile来让容器初始化powershell,让我将powershell脚本指定为ENTRYPOINT?

0 个答案:

没有答案