Varnish 설치 단계(5)
- [root@varnish-server ~]#/usr/local/varnish/bin/varnishlog -n /data/varnish/cache
- 0 CLI - Rd ping
- 0 CLI - Wr 200 PONG 1279032175 1.0
- 0 CLI - Rd ping
- 0 CLI - Wr 200 PONG 1279032178 1.0
는 자체 가지고 있는varnishncsa 명령을 통해apache의combined 출력 형식과 유사한 로그를 얻을 수 있습니다.예:
- [root@varnish-server ~]#/usr/local/varnish/bin/varnishncsa -n /data/varnish/cache
로그를 한 파일에 출력할 수도 있습니다. "-w"매개 변수를 통해 지정하면 됩니다.
- [root@varnish-server ~]#/usr/local/varnish/bin/varnishncsa -n /data/varnish/cache \
- >-w /data/varnish/log/varnish.log
varnish 두 가지 로그 출력 형식 중 첫 번째는 대부분의 상황에서 반드시 필요한 것이 아니다. 여기서 두 번째 로그 출력 형식의 설정 방식을 중점적으로 소개한다.다음은 varnishncsa라는 셸 스크립트를 작성하고 이 파일을/etc/init에 넣습니다.d 디렉토리에서 varnishncsa 스크립트의 전체 내용은 다음과 같습니다.
- #!/bin/sh
-
- if [ "$1" = "start" ];then
- /usr/local/varnish/bin/varnishncsa -n /data/varnish/cache -f |/usr/sbin/rotatelogs /data/varnish/log/varnish.%Y.%m.%d.%H.log 3600 480 &
-
- elif [ "$1" = "stop" ];then
- killall varnishncsa
- else
- echo $0 "{start|stop}"
- fi
-
이 스크립트에서 파이프라인을 통해 로그를'rotatelogs'로 가져옵니다. 로타telogs는 파일 분할 도구입니다. 지정한 시간이나 크기 등을 통해 로그 파일을 분할할 수 있습니다. 그러면 로그 파일의 과도한 성능 문제를 피할 수 있습니다.그 중에서'3600'은 한 시간, 즉 시간당 하나의 로그 파일을 생성하는 것이다.'480'은 시간대 매개 변수이고 중국은 여덟 번째 시간대로 UTC에 비해 480분 차이가 난다. 480을 설정하지 않으면 로그 기록 시간과 서버 시간이 8시간 차이가 난다.rotatelogs 명령 사용법에 관해서는 더 이상 상세하게 설명하지 않습니다.varnish 로그에 대한 모니터링을 통해 varnish의 운행 상태와 상황을 알 수 있습니다.그런 다음 이 스크립트를 승인합니다.
- [root@varnish-server ~]#chmod 755 /etc/init.d/varnishncsa
마지막으로 다음과 같은 방법으로 로그를 시작하고 닫을 수 있습니다.
- [root@varnish-server ~]#/etc/init.d/varnishncsa {start|stop }
4. Varnish 관리
1. varnish 프로세스를 보면 위의 설명을 통해 varnish가 시작할 수 있습니다. 다음 명령을 실행하면 varnish가 정상적으로 시작되었는지 확인할 수 있습니다.
- [root@varnish-server ~]# ps -ef|grep varnish
- root 29615 1 0 00:20 pts/1 00:00:00 /usr/local/varnish/bin/varnishncsa -n /data/varnish/cache -f
- root 29616 1 0 00:20 pts/1 00:00:00 /usr/sbin/rotatelogs /data/varnish/log/varnish.%Y.%m.%d.%H.log 3600 480
- root 29646 1 0 00:21 ? 00:00:00 /usr/local/varnish/sbin/varnishd -P /var/run/varnish.pid -a 192.168.12.246:80 -T 127.0.0.1:3500 -f /usr/local/varnish/etc/vcl.conf -u varnish -g varnish -w 2,51200,10 -n /data/varnish/cache -s file,/data/varnish/cache/varnish_cache.data,4G
- varnish 29647 29646 0 00:21 ? 00:00:00 /usr/local/varnish/sbin/varnishd -P /var/run/varnish.pid -a 192.168.12.246:80 -T 127.0.0.1:3500 -f /usr/local/varnish/etc/vcl.conf -u varnish -g varnish -w 2,51200,10 -n /data/varnish/cache -s file,/data/varnish/cache/varnish_cache.data,4G
명령 실행 결과에서 알 수 있듯이 PID가 29615와 29616인 프로세스는 varnish의 로그 출력 프로세스이고, PID가 29646인 프로세스는 varnishd의 메인 프로세스이며, PID가 29647인 하위 프로세스를 파생시켰다.이 점은 아파치와 유사하다.varnish가 정상적으로 시작되면 80포트와 3500포트가 감청 상태여야 합니다. 다음 명령을 통해 볼 수 있습니다.
- [root@varnish-server ~]# netstat -antl|grep 3500
- tcp 0 0 127.0.0.1:3500 0.0.0.0:* LISTEN
- [root@varnish-server ~]#netstat -antl|grep 80
- tcp 0 0 192.168.12.246:80 0.0.0.0:* LISTEN
- tcp 1 0 192.168.12.246:41782 192.168.12.26:80 CLOSE_WAIT
그 중에서 80포트는 varnish의 프록시 포트이고 3500은 varnish의 관리 포트입니다.2. varnish 캐시 효과와 상태를 보면 브라우저를 통해 대응하는 웹 페이지에 접근하여 varnish 캐시의 효과를 볼 수 있다. 만약에 varnish 캐시가 성공한다면 두 번째 웹 페이지를 여는 속도가 첫 번째보다 현저히 빠를 것이다. 그러나 이런 방식은 문제를 완전히 설명할 수 없다. 다음은 명령행 방식을 통해 웹 헤더를 보고 명중 상황을 보면 다음과 같다.
- [root@varnish-server ~]# curl -I http://www.ixdba.net/a/mz/2010/0421/11.html
- HTTP/1.1 200 OK
- Server: Apache/2.2.14 (Unix) PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1
- Last-Modified: Sat, 10 Jul 2010 11:25:15 GMT
- ETag: "5e850b-616d-48b06c6031cc0"
- Content-Type: text/html
- Content-Length: 24941
- Date: Fri, 09 Jul 2010 08:29:16 GMT
- X-Varnish: 1364285597
- Age: 0
- Via: 1.1 varnish
- Connection: keep-alive
- X-Cache: MISS from www.ixdba.net
# 여기서 "MISS"는 이번 액세스가 캐시에서 읽히지 않았음을 나타냅니다.이 페이지를 다시 열고 헤더 정보를 보십시오.
- [root@varnish-server ~]# curl -I http://www.ixdba.net/a/mz/2010/0421/11.html
- HTTP/1.1 200 OK
- Server: Apache/2.2.14 (Unix) PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1
- Last-Modified: Sat, 10 Jul 2010 11:25:15 GMT
- ETag: "5e850b-616d-48b06c6031cc0"
- Content-Type: text/html
- Content-Length: 24941
- Date: Fri, 09 Jul 2010 08:30:35 GMT
- X-Varnish: 1364398612 1364285597
- Age: 79
- Via: 1.1 varnish
- Connection: keep-alive
- X-Cache: HIT from www.ixdba.net
# "HIT"에서 알 수 있듯이 이 페이지에 두 번째 액세스할 때 캐시에서 내용을 읽습니다. 즉, 캐시 적중입니다.
캐시 적중률의 높낮이는 바로varnish의 운행 상태와 효과를 설명한다. 비교적 높은 캐시 적중률은 varnish의 운행 상태가 양호하고 웹 서버의 성능도 많이 향상된다는 것을 설명한다. 반대로 너무 낮은 캐시 적중률은 varnish의 설정에 문제가 존재할 수 있음을 설명한다. 그러면 조정이 필요하다. 따라서 전체적으로varnish의 적중률과 캐시 상태를 파악하는 것은 varnish의 최적화와 조정에 매우 중요하다.varnish는 varnishstat 명령을 제공합니다. 이를 통해 중요한 정보를 얻을 수 있습니다.다음은 varnish 시스템의 캐시 상태입니다.
- [root@varnish-server ~]#/usr/local/varnish/bin/varnishstat -n /data/varnish/cache
- Hitrate ratio: 10 100 113
- Hitrate avg: 0.9999 0.9964 0.9964
-
- 9990 68.92 49.70 Client connections accepted
- 121820 953.84 606.07 Client requests received
- 112801 919.88 561.20 Cache hits
- 68 0.00 0.34 Cache misses
- 2688 33.96 13.37 Backend conn. success
- 6336 1.00 31.52 Backend conn. reuses
- 2642 33.96 13.14 Backend conn. was closed
- 8978 29.96 44.67 Backend conn. recycles
- 6389 1.00 31.79 Fetch with Length
- 2630 32.96 13.08 Fetch chunked
- 444 . . N struct sess_mem
- 23 . . N struct sess
- 64 . . N struct object
- 78 . . N struct objectcore
- 78 . . N struct objecthead
- 132 . . N struct smf
- 2 . . N small free smf
- 3 . . N large free smf
- 6 . . N struct vbe_conn
- 14 . . N worker threads
- 68 1.00 0.34 N worker threads created
- 0 0.00 0.00 N queued work requests
- 1201 11.99 5.98 N overflowed work requests
- 1 . . N backends
- 4 . . N expired objects
- 3701 . . N LRU moved objects
- 118109 942.85 587.61 Objects sent with write
- 9985 71.91 49.68 Total Sessions
- 121820 953.84 606.07 Total Requests
-
여기서 주의해야 할 몇 가지는 다음과 같다. "Client connections accepted"는 클라이언트가 역방향 프록시 서버에 HTTP 요청을 성공적으로 보낸 총 수량을 나타낸다.'Client requests received'는 지금까지 브라우저가 역방향 프록시 서버에 HTTP 요청을 보낸 누적 횟수를 나타낸다. 긴 연결을 사용할 수 있기 때문에 이 값은 일반적으로'Client connections accepted'보다 크다. "Cache hits"는 역방향 프록시 서버가 캐시 영역에서 캐시를 찾고 적중시키는 횟수를 나타냅니다.'Cache misses'는 백엔드 호스트에 직접 접근하는 요청 수량, 즉 비적중수를 나타낸다. "N struct object"는 현재 캐시된 수량을 나타냅니다. "N expired objects"는 만료된 캐시 내용의 수를 나타냅니다.'N LRU moved objects'는 탈락된 캐시 내용의 개수를 나타냅니다.
본고는'dsafsa_기술 블로그'블로그에서 나온 것이니 저자에게 연락하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
집 서버 설계 (하드웨어 편)자신의 Redmine이나 ownCloud를 운용하기 위해 사쿠라 VPS, DigitalOcean, OpenShift 등을 놀랐습니다만, 침착 해 왔으므로 현상을 정리하고 싶습니다. 먼저 하드웨어 구성을 정리합니다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.