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
레드햇입니다버그 1130239 - RHEL6과 RHEL7 간의 컬 성능 차이:
라이브러리
libcurl
는 활성 파일 설명자가 없는 작업(짧은 작업이라도)에 대해 불필요하게 긴 차단 지연을 사용합니다. 이는 호스트 이름 확인 사용과 같은 특정 작업을/etc/hosts
완료하는 데 인위적으로 오랜 시간이 걸릴 수 있음을 의미합니다. 의 차단 코드는libcurl
이제 초기 지연이 짧고 이벤트가 발생할 때까지 점차 증가하도록 수정되었습니다.libcurl
이제 빠른 작업이 더 빠르게 완료됩니다.
소스에서 새로운 버전의 컬을 설치합니다:
git clone https://github.com/bagder/curl.git
cd curl
yum install libtool
./buildconf
./configure
make
make install