이것은 꽤 긴 질문이므로 나와 함께하십시오.
AWS 인스턴스에서 로그인 한 Akamai 서버를 강조하고 싶었습니다. 그래서 ab 벤치 마크를 시작했습니다. 그러나 그들은 ~ 3MB 비디오 파일을 다운로드하는 것이 엄청나게 빨랐습니다. 당연히 나는 무슨 일이 일어나고 있는지보고 싶었습니다. 이것이 내가 파일을 얻기 위해 한 것입니다
컬 -v -o / dev / null
위의 ~ 5 초 안에 완료되었습니다.
다음으로 같은 명령을 다시 실행했습니다. 이번에는 ~ 200ms 안에 완료되었습니다! 당연히 내 직감은 파일이 어딘가에 캐시되고 있다고 말합니다.
내 질문 :
- curl은 파일을 캐시합니까? 그렇다면 무시할 수있는 방법이 있습니까?
- curl이 아닌 경우 우분투는 curl 아래에 캐시를 추상화합니까? 그렇다면 무시할 수있는 방법이 있습니까?
- 요구 사항이 주어지면 ab와는 별도로 벤치마킹 도구가있을 수 있다고 생각합니까?
감사합니다, Akshay
답변
curl 클라이언트는 파일을 캐싱하지 않지만 원격 서버 네트워크는 그럴 수 있습니다. URL에 임의의 쿼리 문자열 변수를 추가하여 재현 할 수 있는지 확인하십시오.
답변
뒤늦게 시도해보십시오.
curl -v -H "Cache-Control: no-cache"
그러면 웹 서버가 캐시하지 않도록 지시합니다. 헤더를 준수하도록 코딩되지 않은 경우 캐싱 아래의 레이어를 중지하지 않습니다.
답변
이 curl 명령을 캐시 버스터 매개 변수와 함께 사용했습니다.
curl http://example.com/static/changing_file?_=$(date +%s)
date +%s
1 초에 두 번 이상 URL을 호출하여 date +%s.%N
나노초를 추가 하는 경우 에포크 이후 초를 인쇄합니다 .
답변
당신은 추가 사용할 수있는 임의의 쿼리 문자열을 사용하여$RANDOM
환경 변수를 :
curl --location --silent "https://git.io/lsf-e2e?$RANDOM"
이것은 github raw 파일에서 나를 위해 일했습니다.
답변
아마 당신의 DNS는 이름의 해상도를 캐싱하고 응답 시간의 차이의 이유입니다.
이론 일뿐입니다.