我发现,当发出HTTP请求时,我注意到一个应用程序的性能很差(额外的延迟5秒)。通过大量的测试/测试,我意识到将应用程序移出docker到主机中消除了奇怪的HTTP延迟。
我正在使用alperlinux作为docker映像,ubuntu正在托管主机。
Docker信息:
Docker版本1.11.2,构建b9f10c9
"NetworkSettings": {
"Bridge": "",
"SandboxID": "3ab81b8a66a99c6e9b1a1f49c5410d8260db37eee96c9231c0d83c1b40f84fa5",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"8084/tcp": null
},
"SandboxKey": "/var/run/docker/netns/3ab81b8a66a9",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "464acfb299941bbd301051ea05451823a7e527161185570c00f8569ce2afde88",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:03",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "32ebc75bc4c98106c6775905906723405c58bc3de914283234a8e1273cba7193",
"EndpointID": "464acfb299941bbd301051ea05451823a7e527161185570c00f8569ce2afde88",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03"
}
}
}
我在码头上开了一个集装箱,没有任何幻想:
^{pr2}$我的代码(python)是整个请求周期所需时间的两倍:
^{pr3}$恒定时间为5-6秒,在容器外,其不到一秒。
我做了一个练习,从容器内部检查DNS和tcpdump。从那里看来没有什么有趣的报道。DNS看起来很好,包捕获报告0.2秒请求次数。
我从包捕获中发现的唯一有趣的事情是,从http.request被打电话了。
我相信这里有一个码头工人网络的错误配置。如果还有什么需要补充的信息,请告诉我。我们正在使用docker来提供20个其他服务,没有这个问题。
谢谢!
我不知道你是否还需要这些信息。我们也看到了类似的情况,升级Docker解决了这个问题。在
由于不知道问题的原因,我做了一点挖掘,我发现:
https://github.com/docker/docker/issues/20661
简而言之,这与docker在尝试对ipv4执行相同操作之前尝试解析ipv6 dns有关。读一读。你可能比我更明白。在
我希望这对你有帮助。在
相关问题 更多 >
编程相关推荐