두 Linux 서버 간의 대기 시간을 테스트하고 있습니다. Linux 서버는 서버이고 B Linux 서버는 클라이언트입니다. 명령을 사용하여 파일을 성공적으로 다운로드할 수 있습니다 curl
. 하지만 시간이 너무 빨라서 아마도 300-500ms 정도일 것입니다.
다음 명령을 통해 사용하려고 하면 curl
파일을 다운로드하는 데 걸리는 시간이 표시되지 않습니다. 작은 파일을 다운로드하는 데 시간이 얼마나 걸리는지 확인하는 방법이 궁금하십니까?
curl -0 "http://server IP/filename" --output filename
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2191k 100 2191k 0 0 8278k 0 --:--:-- --:--:-- --:--:-- 8302k
답변1
Curl에는 완료된 전송에 대한 정보를 표준 출력으로 인쇄하는 기능이 있습니다. 이는 --write-out
또는 -w
옵션과 해당 형식 문자열( printf
형식 문자열과 유사)을 포함합니다.
매뉴얼 페이지에는 연결 시작과 세션의 다양한 단계(DNS 조회, TCP 연결 준비, 다른 URL로 리디렉션, 전송 시작 등) 사이의 경과 시간을 설명하는 일부 형식 사양이 설명되어 있습니다. 연결(또는 "전송")이 종료됩니다. 그러나 귀하의 목적에는 두 개만 필요하다고 생각합니다. 귀하와 유사한 예를 사용하여:
curl -0 --output filename --write-out 'xfer_start=%{time_starttransfer}\nxfer_end=%{time_total}\n' "https://www.google.com/"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 15166 0 15166 0 0 64085 0 --:--:-- --:--:-- --:--:-- 67404
xfer_start=0.214270
xfer_end=0.236651
저는 이 기능을 사용하여 URL이 전송되는 시점부터 HTTP 응답 코드가 반환되는 시점까지 웹 서버의 응답성을 테스트하는 모니터링 스크립트를 만들었습니다. 아주 잘 작동하는 것 같습니다.