Docker 容器中的网络优化与 DNS 缓存清理

在使用Docker 18.03.1-ce版本在Ubuntu 18.04 LTS上运行多个Docker容器时,我发现当使用requests库发送请求到某个主机名时,响应速度非常慢。在本例中,每个容器都有自己的CherryPy服务器,并通过requests.get('http://main:8083')或requests.get('http://controller:8082')的方式进行通信。所有的容器都属于一个Docker Compose stack,并由docker-compose创建了一个公共网络。

同样问题也出现在运行Windows操作系统的主机机器上,尝试获取一个本地页面时,请求工作正常。

值得注意的是,这个问题只在Ubuntu 18.04 LTS上运行的Docker主机上不存在,如果在主机机器运行bench.py程序,无论使用localhost还是127.0.0.1,都能正常工作。

解决方案:

为了更好地理解问题,我们使用了bench.py程序,该程序使用了urllib3和requests两个库发送请求并记录响应时间。

1. 对于urllib3:

我们首先使用urllib3库的PoolManager发送GET请求到localhost和127.0.0.1,并记录响应时间。结果显示,无论是localhost还是127.0.0.1,响应时间都很短。

2. 对于requests:

然后我们使用requests库的get方法发送GET请求到localhost和127.0.0.1,并记录响应时间。结果显示,无论是localhost还是127.0.0.1,响应时间都很短。

通过对比urllib3和requests的响应时间,我们可以看到,问题可能出在requests库中。

然后我们查阅了requests库的文档,发现requests库使用了urllib3库来进行HTTP请求。因此,我们猜测问题可能出在urllib3库上。

我们进一步查阅了urllib3库的文档,发现urllib3库在处理DNS解析时,会使用系统的DNS缓存。因此,我们猜测问题可能出在系统的DNS缓存上。

为了解决问题,我们可以通过以下步骤来解决:

1. 首先,我们可以在Docker主机上运行以下命令来清除DNS缓存:

```shell
docker-compose run --rm --network=compose_default bench bench.py
```

其中,'bench'是我们的Docker容器的名字,'bench.py'是我们的bench程序。

2. 然后,我们可以在Docker主机上运行以下命令来检查DNS缓存:

```shell
docker-compose run --rm --network=compose_default bench bench.py
```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/153026.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2022CCPC绵阳 ACGHM

Dashboard - 2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite - Codeforces C.Catch You Catch Me 题意 思路 首先注意到贡献可以按深度统计,对于每个深度dep,贡献是在dep深度中属于的子树种类数,如果在该深度中子树存在…

python文件读写练习题--随机出10套试卷

要求就是:10套试卷题目顺序不同,答案顺序不同 import random import os city {河北省:石家庄市,山西省:太原市,辽宁省:沈阳市,吉林省:长春市,黑龙江省:哈尔滨市,江苏省:南京市,浙江省:杭州市,安徽省:合肥市,福建省:福州市,江西省:南昌市}#在当前路径下…

如何深度了解汤泉场所?VR全景给你答案

天气逐步转凉,温泉、水会这些室内汤泉场所开始登上消费的主战场。伴随着人们物质生活水平的提高,人们对休闲养生会馆的要求也愈发旺盛,汤泉场所也逐渐从单一的洗浴开始向休闲、娱乐、保健、桑拿等多种业态形式发展,那么大家如何深…

如何利用SD-WAN优化云时代的网络连接

在多云时代下,企业的网络连接需求面临着诸多挑战和变化。随着企业应用的日益复杂和分散,网络连接也变得更加复杂。企业需要同时连接多个云服务商、数据中心、分支机构和移动用户等,并保证网络连接的稳定性和可靠性。同时,企业对于…

什么是自动化测试

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

大数据的技术运用:探索未来的无限可能性

随着科技的不断进步和社会信息的快速增长,大数据已成为一个热门话题。本文将探讨大数据技术在多个领域的应用,以及它对未来的影响和无限可能性。 导言 在过去的几十年里,大数据技术取得了惊人的发展,它不仅改变了企业的经营方式&a…

2024江苏专转本流程与时间节点

2024江苏专转本考生,提前看一下转本的流程与时间节点!适用于江苏三年制、五年一贯制专转本考试: 1. 专转本工作通知(2023年12月上旬) 若无特殊情况,到12月中旬,江苏省教育厅会发布关于做好2024…

spark性能调优 | 内存优化

目录 我们先了解一下有哪些内存温馨提示RDD示范(spark版本2.1.1)RDD进行优化Df和Ds进行示范 我们先了解一下有哪些内存 1.storage内存 存储数据,缓存 可预估2.shuffle内存 计算join groupby 不可预估spark1.6之前 静态管理的,spark1.6之…

2023测试工程师做哪些准备,才能从众人中脱颖而出,不看后悔10年

最近,裁员的声音此起披伏。貌似我们只有努力奔跑,这一块带有命运诅咒的“石头”才不会轻易的落到我们的头上。 在不是金三银四、金九银十的求职旺季外,还会有机会吗?我想,对于有能力的人来说,任何时候都可…

数据库测试的认知和分类详解

现在的软件系统,尤其是业务应用系统,后台都连接着一个数据库。数据库中存储了大量的数据,数据库的设计是否合理和完善,SQL语句编写是否正确、高效,都直接影响了一个软件系统的功能正确性和性能表现。今天跟大家分享一些…

【python】均值、中值和高斯滤波详解和示例

本文对均值、中值和高斯滤波进行详解,以帮助大家理解和使用。 这里写目录标题 均值滤波中值滤波高斯滤波核大小为(9,9)核大小为(51,51) 小结 下面是示例中使用的原图。 均值滤波 均值滤波是一种简单的平滑滤波器&…

猫罐头怎么选择?市面上最受欢迎的5款猫罐头推荐!

很多人在买猫罐头的时候,可是费了老鼻子劲儿了。他们浏览了各大平台,读了大量的评测文章,就想着找到最好的那一个。但最后他们发现,很多所谓的「实测」都是虚的,假的。花了几天时间,结果选了个质量不好的猫…

骨传导式蓝牙耳机值得入手吗?盘点最值得入手的5款骨传导耳机

在骨传导耳机还没有火之前,相信很多朋友都是使用入耳式和头戴式耳机比较多一点,但是慢慢的会发现,这两种耳机都存在很大的问题,比如说入耳式耳机,长时间佩戴会造成耳朵痛等问题,而头戴式耳机因为隔音效果好…

vue2项目从0搭建(二):配置代理,登录功能和菜单权限

前言: 发送ajax,fetch,websocket请求获取服务端的数据,配置代理是必须的环节 登录功能和菜单权限是后台管理系统中非常经典且十分重要的业务,这里涉及的知识点也是比较多的,坑也多,面试也是很重要的一环。 这里必须得会,没错是必须。 配置服务代理 创建两个node服务 在和…

【SOLO】实例分割论文SOLO: Segmenting Objects by Locations详解

🚩🚩实例分割论文专栏快速跳转🚩🚩【实例分割】 目录 🌞🌞1.摘要 🌳🌳2.创新点 🌼🌼3.网络结构 🎃🎃3.1背景 🎃&…

4-flask-cbv源码、Jinja2模板、请求响应、flask中的session、flask项目参考

1 flask中cbv源码 2 Jinja2模板 3 请求响应 4 flask中的session 5 flask项目参考 1 flask中cbv源码 ***flask的官网文档:***https://flask.palletsprojects.com/en/3.0.x/views/1 cbv源码执行流程1 请求来了,路由匹配成功---》执行ItemAPI.as_view(item…

【java学习—十五】线程的生命周期(4)

文章目录 线程的生命周期1. 相关概念 线程的生命周期 1. 相关概念 线程的生命周期:线程从生到死的整个经历。 JDK 中用 Thread.State 枚举表示了线程的几种状态 要想实现多线程,必须在主线程中创建新的线程对象。 Java 语言使用 Thread 类及其子类的…

UnitTest + Selenium 完成在线加法器自动化测试

1. 任务概述 利用 UnitTest 与 Selenium 编写自动化用例,测试在线加法器中的整数单次加法功能【如123 】 人工操作流程(测试 12 是否等于 3): 打开在线加法器点击按钮1,再点击按钮,再点击按钮2&#xff0c…

adb手机调试常用命令

查看手机型号 adb shell getprop ro.product.model 查看电池状况 adb shell dumpsys battery 查看分辨率 adb shell wm size 查看屏幕密度 adb shell wm density 查看显示屏参数 adb shell dumpsys window displays 查看android_id adb shell settings get secure android…