3

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

我本地的结果是:

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?

4

0 回答 0