이 사이트는 오라클 클라우드가 제공하는 프리티어 인스턴스 OCPU 2개에 24GB RAM으로 워드프레스를 운영하고 있다.
브라우저 체감이 아닌 실제 서버 반응 시간을 측정해 보았다. curl 명령어로 TTFB와 total time을 측정하는 방법은 다음과 같다.
서버 내에서 측정
측정 방법
curl의 TTFB는 HTTPS 연결 후 서버가 첫 바이트를 보내기까지 걸린 시간을 뜻하므로 실제 웹 응답 속도에 가까운 결괏값이다.
자신의 서버에 로그인하여 curl 명령어로 TTFB와 total time을 측정하는 방법은 아래와 같다.
명령어
curl -o /dev/null -s -w \
"DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTLS: %{time_appconnect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\nHTTP: %{http_code}\n" \
https://newbinsight.com/
측정 결과
DNS: 0.001003s
Connect: 0.001330s
TLS: 0.036479s
TTFB: 0.037139s
Total: 0.038112s
HTTP: 200
측정 결과, 서버가 첫 바이트를 보내기까지 걸린 시간은 TTFB: 0.037139s, 전체 응답 다운로드 완료 시간인 Total: 0.038112s가 나왔다.
논 캐시와 캐시 비교
개별 글이 캐시가 안 된 상태에서는 TTFB: 0.114537s | Total: 0.119503s, fastcgi-cache가 된 상태에서는 TTFB: 0.038682s | Total: 0.039414s가 나왔다.
1. 개별 글 NO 캐시
명령어
URL= "https://newbinsight.com/nginx-fastcgi-%ec%ba%90%ec%8b%9c-%ed%85%8c%ec%8a%a4%ed%8a%b8-%ea%b8%80/"
curl -o /dev/null -s -D /tmp/headers.txt -w \
"TTFB: %{time_starttransfer}s | Total: %{time_total}s\n" \
"$URL" && grep -i "x-fastcgi-cache" /tmp/headers.txt
결괏값
TTFB: 0.114537s | Total: 0.119503s
x-fastcgi-cache: MISS
2. 개별 글 fastcgi-cache된 상태
명령어
URL="https://newbinsight.com/nginx-fastcgi-%ec%ba%90%ec%8b%9c-%ed%85%8c%ec%8a%a4%ed%8a%b8-%ea%b8%80/"
curl -o /dev/null -s -D /tmp/headers.txt -w \
"TTFB: %{time_starttransfer}s | Total: %{time_total}s\n" \
"$URL" && grep -i "x-fastcgi-cache" /tmp/headers.txt
결괏값
TTFB: 0.038682s | Total: 0.039414s
x-fastcgi-cache: HIT
fastcgi-cache를 적용하면 전체 응답 다운로드 완료 시간이 약 3배 빨라짐을 알 수 있다.
서버 외부에서 측정
명령어
curl.exe -o NUL -s -w "TTFB: %{time_starttransfer}s Total: %{time_total}s HTTP: %{http_code}`n" https://newbinsight.com/
측정 결과
TTFB: 0.055375s Total: 0.066290s HTTP: 200
서버 외부에서 측정한 결과 TTFB는 0.055375s, Total: 0.066290s가 나왔다. 이 정도면 개인 블로그를 운영하는 데는 차고 넘칠 정도로 빠른 속도라고 할 수 있다.
서버 속도가 느린 경우 fastcgi 캐시 적용을 하면 속도가 거의 3배 빨라질 수 있다. 대체로 TTFB 0.05~0.2초대는 매우 좋고, TTFB 0.2~0.5초대도 양호한 것으로 봐도 된다. TTFB 0.5초 이상이면, 개선할 필요가 있다.
오라클 프리티어 인스턴스를 고려하시는 분들은 참고하시기 바란다.
댓글