Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python未使用持久DNS缓存';s socket.getaddrinfo/mercurial_Python_Sockets_Caching_Mercurial_Dns - Fatal编程技术网

Python未使用持久DNS缓存';s socket.getaddrinfo/mercurial

Python未使用持久DNS缓存';s socket.getaddrinfo/mercurial,python,sockets,caching,mercurial,dns,Python,Sockets,Caching,Mercurial,Dns,当我通过一个调制解调器/ISP连接时,我的Ubuntu机器上的DNS查找速度非常慢。我按照说明(比如那些)使用持久DNS缓存,这样我就不会重复DNS查找,一切都变得更快了。然而,我注意到,在对mercurial进行回购交易时,即使转移非常小的变动,速度也非常缓慢。深入查看,我发现所有的时间都被\u socket.getaddrinfo占用,即DNS查找。为什么即使所有web浏览器都使用/etc/pdnsd.conf中的信息来使用旧的dns查找,pythons套接字却不这样做呢。如何让mercur

当我通过一个调制解调器/ISP连接时,我的Ubuntu机器上的DNS查找速度非常慢。我按照说明(比如那些)使用持久DNS缓存,这样我就不会重复DNS查找,一切都变得更快了。然而,我注意到,在对mercurial进行回购交易时,即使转移非常小的变动,速度也非常缓慢。深入查看,我发现所有的时间都被
\u socket.getaddrinfo
占用,即DNS查找。为什么即使所有web浏览器都使用
/etc/pdnsd.conf
中的信息来使用旧的dns查找,pythons套接字却不这样做呢。如何让mercurial使用缓存查找

更新

也可能是因为尝试同时获取ipv4和ipv6地址,并且仅在找不到ipv6地址后返回答案。但我不确定如何检查这一点,即延迟是由于ipv6、非持久性还是两者兼而有之

更新


这可能与ipv6请求有关,正如答案中所建议的,一旦有机会,我将不得不检查一下。

多亏了python列表中的这一点,如果您使用BIND,那么python的getaddrinfo将使用缓存的DNS查找。安装并启动BIND后,会立即重复DNS查找。

Pythons套接字。getaddrinfo()使用操作系统的getaddrinfo()(通过libc)。-这与Python毫无关系。如果PDN已配置为在解析链中,则不同的解析速度由不同的请求决定请更仔细地查看哪些确切的getaddrinfo()请求是快的,哪些是慢的。

我认为引用的电子邮件现在已移动到