(박혜웅) Ngnix for scalable web services

Download Report

Transcript (박혜웅) Ngnix for scalable web services

2011.07.08

Nginx

Nginx for scalable web services.

박혜웅

웹서비스를 위한 Nginx 도입의 필요성

• 다용도로 활용 – Load Balancer – Reverse Proxy – Web server – WAS (PHP, Python) – Streaming Server • 검증된 S/W – WordPress, Hulu, Github, Ohloh, SourceForge 등에서 사용 중.

– 외부 벤치마크에 의하면, CPU/Memory 점유율 대비 최상의 성능을 보임.

• 오픈 소스 사용 – 유지보수 비용 최소화.

Benchmark

Reference URL

– http://nbonvin.wordpress.com/2011/03/24/serving-small-static-files-which server-to-use/ •

Test Bed

– Intel Core i3 – 370M @ 2.4 Ghz – Hard drive 5400 rpm – Memory: 4GB DDR3 1066MHz) – OS: Ubuntu 10.10 64 bit (kernel 2.6.35) – Web Object: String 100 bytes •

S/W versions

– Nginx: 0.7.67-3ubuntu1 (64 bit) – Varnish: 2.1.3-7ubuntu0.1 (64 bit) – G-WAN: 2.1.20 (32 bit) – Lighttpd: 1.4.26-3ubuntu2 (64 bit) – Apache Traffic Server: 2.1.7-unstable (64 bit)

Benchmark

Benchmark

Test Result

NginX

( http://wiki.nginx.org/ ): 중상의 성능이며, 메모리 사용량이 매우 작음 – – – –

G-WAN

( http://www.gwan.ch/ ): 성능 가장 좋으나 동접자에 따라 CPU사용량이 지속적으로 증가. 아직 검증된 시스템이 아님.

Apache Traffic Server

( http://trafficserver.apache.org/ ): 중상의 성능

Lighttpd

( http://www.lighttpd.net/ ): 중상의 성능

Varnish Cache

( http://www.varnish-cache.org/ ): 다른 서버보다 성능이 1/2 수준

결정해야 할 요구 사항들

• Load Balancer로 사용할 경우, 서버의 현재 부하도 고려해야 하나?

– Nginx 는 단순한 Round-Robin 방식이므로, 서버의 부하까지 고려할 수 없다.

• WAS로 사용할 경우, JSP/JAVA, ASP를 지원해야 하는가?

– Nginx는 JSP/JAVA, ASP 를 지원하는 모듈이 현재 없다.

– 현재 Nginx는 PHP, Python등을 지원한다.

• Reverse Proxy로 사용할 경우, 무엇을 캐시로 사용할 것인가?

– 자체 지원되는 파일 캐시를 사용하는 것이 가장 쉬운 방법이다. – 설정파일만으로 Memcached와 연동할 수 있지만, set 은 별도로 처리해야 한다.

• 스트리밍 데이타의 클라이언트(브라우저) 캐시를 허용하는가?

– 허용하는 경우, 공개였던 동영상을 비공개로 수정하여도 이미 한 번 보았다면(다 운 받았다면), 다시 볼 수 있다.