Centos 7 缓慢解析

Centos 7 缓慢解析

安装 Centos 7 后,我注意到 DNS 查找 /etc/hosts 中保存的地址需要很长时间,示例如下:

time curl -X get http://localhost

real    0m0.159s
user    0m0.004s
sys     0m0.005s

time curl -X get http://127.0.0.1

real    0m0.005s
user    0m0.001s
sys     0m0.003s

每个请求解析“localhost”大约需要 0.15 秒。

我在 Centos 6.5 同一网络中的另一台服务器上进行了相同的测试,但“localhost”与“127.0.0.1”一样快

答案1

这是红帽Bug 1130239 - RHEL6 和 RHEL7 之间的卷曲性能差异:

libcurl库对没有活动文件描述符的操作(即使是短操作)使用了不必要的长阻塞延迟。这意味着某些操作(例如使用 解析主机名/etc/hosts)会人为地花费很长时间才能完成。中的阻塞代码libcurl现在已被修改,使得初始延迟很短,并逐渐增加,直到事件发生。快速libcurl操作现在可以更快地完成。

从源安装新版本的curl:

git clone https://github.com/bagder/curl.git
cd curl
yum install libtool
./buildconf
./configure
make
make install

相关内容