在一台主机上ldapsearch需要20秒才能启动。
即使我只是问它的版本号是什么,它仍然花了20秒:
time ldapsearch -VV
ldapsearch: @(#) $OpenLDAP: ldapsearch 2.4.44 (Sep 30 2020 17:16:36) $
mockbuild@x86-02.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/clients/tools
(LDAP library: OpenLDAP 20444)
real 0m20.034s
user 0m0.006s
sys 0m0.008s
这不是一个关于搜索时间的问题——如果我让它搜索,它会花20秒才开始搜索。
一旦启动,搜索成功,所需时间与从其他主机调用时相同。
我尝试添加各种命令行参数。
唯一返回不同结果的是ldapsearch --help
,它基本上立即返回,这表明问题不在于加载库或其他类似的东西。
运行状态显示网络流量延迟,特别是端口53 (DNS):
socket(AF_INET6, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 3 <0.000038>
connect(3, {sa_family=AF_INET6, sin6_port=htons(53), inet_pton(AF_INET6, "... poll([{fd=3, events=POLLOUT}], 1, 0) = 1 ([{fd=3, revents=POLLOUT}]) <0.000011>
sendto(3, "..."..., 34, MSG_NOSIGNAL, NULL, 0) = 34 <0.000033>
poll([{fd=3, events=POLLIN}], 1, 5000) = 0 (Timeout) <5.005182>
connect调用的目的地原来是/etc/resolv.conf中设置的IP地址。
IP地址不可达。
从/etc/resolv.conf中删除不可达的IP地址使延迟消失。