Server

XE성능 캐시활용으로 속도 100배 개선하기(Varnish 캐시서버 + XE(+패치) + nginx(혹은 아파치) / Wincache)

by Progress posted Mar 04, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

https://github.com/xpressengine/xe-core/pull/1598


QMemo+_2016-03-04-10-59-32.png

XE성능 캐시활용으로 속도 100배 개선하기



일단 XE 성능은 위젯등 캐시기능을 활용할 수도 있지만


특정 게시물에 트래픽이 발생되었을때 게시물 자체를 캐시하면 얼마나 좋을까라는 생각이 들어 찾아봤더니 서버 자체에 캐시 기능을 활용하는 것



XE성능 100배 올리는 패치
https://www.xpressengine.com/forum/23040664


Varnish 캐시서버 + XE(+패치) + nginx(혹은 아파치)



WinCache를 사용하여 속도개선
http://studyforus.tistory.com/93
https://www.xpressengine.com/devlog/20828234
http://php.net/manual/kr/book.wincache.php


Windows Cache Extension은 5가지 종류의 캐시를 포함한다. 각 캐시의 용도와 특징은 다음과 같다.




• PHP Opcode 캐시(PHP Opcode Cache)  - PHP는 텍스트 및 PHP 명령을 포함하는 데이터의 입력 스트림을 읽고 주로 HTML 형식으로 데이터 스트림을 만들어 내는 스크립트 처리 엔진이다. 즉, 웹 서버에서 PHP엔진은 웹 클라이언트가 요청할 때마다 PHP 스크립트를 읽고, 파싱하고, 컴파일하고, 실행한다. 이렇게 읽고, 파싱하고, 컴파일하는 작업은 웹 서버의 CPU와 파일 시스템에 추가적인 부하를 줘서 PHP 웹 애플리케이션의 전반적인 성능에 영향을 미친다. PHP 바이트코드(opcode) 캐시를 사용하면 컴파일된 스크립트 바이트코드를 공유 메모리에 저장하므로 PHP 엔진은 이후 동일한 스크립트를 실행하는 데 이를 재사용할 수 있다.
• 파일 캐시(File Cache) - PHP opcode 캐시가 활성화되어 있어도 PHP 엔진은 파일 시스템에 있는 스크립트 파일에 접근해야 한다. PHP 스크립트가 원격의 UNC 파일 공유에 저장되면 파일 연산 시 심각한 성능 과부하가 발생한다. PHP용 Windows Cache Extension은 PHP 스크립트 파일의 내용을 공유 메모리에 저장하는 데 사용되는 파일 캐시를 포함하므로 PHP 엔진에서 수행하는 파일 시스템 연산의 양이 줄어든다.
• 파일 경로 변환 캐시(Resolve File Path Cache) - PHP 스크립트는 종종 상대 경로를 사용해서 파일을 포함하거나 연산 작업을 수행한다. 모든 파일 경로는 PHP 엔진에서 절대 경로로 정규화해야 한다. PHP 애플리케이션이 상대 경로로 여러 개의 PHP 파일에 접근하고 파일을 사용하면 상대 경로를 변환하는 작업 때문에 애플리케이션의 성능에 악영향을 줄 수 있다. PHP용 Windows Cache Extension은 파일의 절대 경로와 상대 경로 간 매핑 내용을 저장하는 파일 경로 변환 캐시를 제공하므로 PHP 엔진이 수행해야 할 경로 변환 작업의 부담을 덜어준다.
• 사용자 캐시(User Cache, 1.1.0 버전부터 사용 가능)  - PHP 스크립트는 사용자 캐시 API를 사용해서 공유 메모리 캐시를 활용할 수 있다. PHP 객체와 변수는 사용자 캐시에 저장했다가 이후 요청 시 재사용할 수 있다. 사용자 캐시를 사용해서 PHP 스크립트의 성능을 향상시키고 여러 PHP 프로세스 간에 데이터를 공유할 수 있다.
• 세션 핸들러(Session Handler, 1.1.0 버전부터 사용 가능) - Wincache 세션 핸들러를 사용해서 PHP 세션 데이터를 공유 메모리 캐시에 저장할 수 있다. 그러면 세션 데이터를 읽고 쓰는 데 소요되는 파일 시스템 연산이 줄어들어, PHP 세션에 대용량 데이터가 저장되었을 때 성능을 향상시킬 수 있다.




Articles

1 2 3 4 5