python-requests多久执行一次dns查询

yeotifhr  于 2023-06-28  发布在  Python
关注(0)|答案(3)|浏览(115)

我们正在使用Locust来对弹性负载平衡后的rest API服务进行负载测试。我遇到了this article关于负载平衡和自动伸缩,这是我们正在测试的东西。
Locust使用的是python-requests,而python-requests使用的是urllib 3**,所以我的问题是,python-requests是否会为每个连接进行dns查询,如果不是,它是否可配置?

oyt4ldly

oyt4ldly1#

Locust正在使用python requests,它正在使用urllib3,它正在使用socket.getaddrinfo,根据this SO thread禁用了DNS缓存(假设您的测试机器运行Linux)。

fjaof16o

fjaof16o2#

python-requests为每个连接执行DNS查询。
要禁用此功能,可以使用dns cache
现在可以使用systemctl enable systemd-resolved启用systemd-resolved
更多信息-https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

xoshrz7s

xoshrz7s3#

是的,Python requests库在每次请求时执行DNS查询;
但是,您可以使用requests-cache来改善这种行为
requests-cache是一个持久的HTTP缓存,它提供了一个简单的方法来获得更好的性能与python请求库。
它真的很容易使用,1分钟,2行代码,你就可以开始了。
(This解决了一个问题,我正试图批处理的东西,突然停止工作后,10 K调用,不是因为服务不可用,而是因为DNS请求将被拒绝在我的内部网DNS服务器。)

相关问题