ruby-on-rails - 为什么这个 Fig/Docker 容器中的网络速度这么慢?

标签 ruby-on-rails networking docker fig

我正在使用Fig和 Docker 来容器化示例 Rails 应用程序。目前,一切正常,数据库和服务器已启动。当我有有效的互联网连接时,一切都运行良好。但是,当我没有 Internet 连接时,需要很长时间才能连接到 Rails/WEBrick 服务器(从浏览器请求本地主机页面需要 20 秒)

我查看了日志,没有发现任何异常。只是容器接收初始连接需要很长时间,而且传输数据也需要很长时间。

最佳答案

好的,我测试了一下,是DNS解析的原因。当您“禁用”典型的 Google DNS 并使用本地主机时,延迟就会消失。这可能是因为如果不这样做,Docker 会假设 127.0.0.1 是需要通过 NS 查找的某个地址,并花费大量时间等待响应(大概是因为它是通过 UDP 发送的,所以等待时间更长,因为丢失/丢弃数据包)。这也是没有立即记录请求的原因,因为 DNS 位于网络堆栈的较低级别。

关于ruby-on-rails - 为什么这个 Fig/Docker 容器中的网络速度这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24991655/

相关文章:

security - 如何限制特定主机对 Cassandra 的访问?

ruby-on-rails - 在设计中向用户模型添加字段

javascript - 如何 fork /复制流

networking - 如何使一个Pod与Kubernetes中的另一个Pod联网? (简单)

php - 我想在同一网络内的智能手机上访问 htdocs 中的文件

tomcat - Docker 仅在虚拟机上而不是在物理机上?

docker - 如何映射 docker 卷中的文件

linux - 如何使用 Docker Desktop/Hyper-V/MobyLinuxVM 从 Windows 主机 LAN 透明访问 Linux 容器

ruby-on-rails - Michael Hartl 的 Ruby on Rails 教程第 9 章( list 9.52)

ruby-on-rails - Ruby/Slim 是否支持 Markdown ?