Varnish는 효율성을 위해서 C로 짜여져 있으며, VCL이라는 언어로 설정이 가능합니다. VCL은 간단한 언어로 오브젝트 파일로 컴파일되어 데몬에서 호출되는 등 빠르게 동작할수 있도록 최적화에 신경을 많이 썼습니다. 주 개발자는 FreeBSD 커널 여러부분에서 작업해서 OS에 대한 이해도가 높고, 기존에 있던 캐싱 시스템들이 옛날 하드웨어 맞게 최적화되어 개발되어 있기 때문에 오히려 요즘 처럼 여러단계로 메모리가 캐싱되는 하드웨어 상황에서는 적합하지 않다고 얘기합니다.
홈페이지는 http://varnish-cache.org/ 이며, FreeBSD에서는 /usr/ports/www/varnish 에서 설치할수 있습니다.
회사 서비스 중 웹서버에 많은 부하가 집중되어 있었는데 많은 부분 해결이 되었습니다. 해결을 위해 동원된 방법은...
- SQL 쿼리 최적화
- PHP에서 필요한 부분만 include (main include 파일이 커져서)
- 랜더링 오래 걸리는 페이지 memcache에 캐싱
- 잘 변하지 않는 페이지 html로 저장
- 웹서버 Apache에서 lighttpd로 변경
- xcache 적용 (코드 캐시만 사용)
동시 연결된 클라이언트가 급속히 늘다보니 아파치 1.3에서는 mod_php는 메모리가 너무 많이 차지하여 한계가 생겼었습니다. 당시 php 처리도 느렸었지만, lighttpd에 fastcgi로 바꾸고 나서는 메모리 사용량이 현저히 줄었습니다. xcache는 php 컴파일된 코드를 메모리에 캐싱하는 모듈로 적용후 php의 부하를 많이 줄일수 있었습니다. xcache에서 memcache와 동일한 기능도 제공합니다. 그외에 pen이나 plb등의 S/W load balancer 도입도 생각하고 있으며, lighttpd의 fastcgi load balancing도 고려하고 있습니다.
Trackback Address :: http://mix1009.net/trackback/5
