진서기

[펌]PHP 애플리케이션을 가장 빠르게, Part 1: opcode 캐시 소프트웨어로 성능과 처리량 높이기

· 18년 전 · 2870
난이도 : 중급
Martin Streicher, Editor in Chief, Linux Magazine
2007 년 4 월 03 일
PHP는 스크립팅 언어로써 웹 애플리케이션을 구현하는데 종종 사용되고 있습니다. 배우기 쉽고 시각적인 결과를 빠르게 만들어 냅니다. 하지만, PHP는 인터프리팅 되기 때문에 PHP 코드는 실행될 때마다 opcode로 파싱 및 변환됩니다. opcode 캐시는 재작업을 줄이면서, PHP 애플리케이션을 더욱 빠르게 만들어줍니다.
짧은 시간 동안 PHP는 웹 애플리케이션을 위한 대중적인 프로그래밍 언어가 되었다. 초보자도 PHP를 쉽게 설치할 수 있고 배우기도 쉽다. 보다 숙련된 개발자에게는, (V5부터) 강력한 객체 지향 기능을 제공한다. PHP 개발자 커뮤니티는 방대하고, 상당히 많은 오픈 소스와 상용 라이브러리와 툴들이 언어 기능을 확장하고 있다. PHP는 시각적인 결과를 빠르게 나타내기 때문에 많은 사람들로부터 사랑을 받는다.
Perl, Python, Ruby 등 웹 애플리케이션에 사용되는 다른 스크립팅 언어와 마찬가지로 PHP 코드는 파싱되어, opcodes (PHP 엔진을 직접 실행하는 기본 명령)로 변환되고 HTTP가 이를 요청할 때마다 실행된다. 하찮거나 작은 요구에도, 서버는 복잡한 렌더링 프로세스를 즉각적으로 완벽하게 실행한다. 제공되는 페이지의 수가 증가하면서, 해석(interpretation)-즉 재작업(rework)-은 시스템에 부담을 주게 된다. 어떤 경우, PHP 코드의 "컴파일(compilation)"은 코드를 실행하는데 드는 시간보다 더 많이 든다. 따라서, 요구가 많아질수록, 보다 동적으로 해석되고, 생성된 페이지들은 더 많은 리소스들을 요구하게 된다.
여러분의 사이트에서 프로세서와 메모리에 대해 무제한 예산이 할당되었다면, 사이트의 응답시간을 보장하기 위하여 애플리케이션 스택(하드웨어, OS, 데이터베이스, 웹 서버, PHP 코드)를 최적화할 필요가 없을 것이다. 하지만, 돈은 늘 모자라기 마련이므로, 성능 튜닝은 불가피하다. 튜닝은 부족한 시스템에 메모리를 추가하고, OS 매개변수들을 수정하고, 웹 또는 데이터베이스 서버 속도를 앞당기고, 효율성 있는 코드를 재작성 하거나 결합하는 것을 의미한다. 이러한 모든 것들이 효과를 발휘한다.
CPU 사이클을 유지하는 방법은 PHP 애플리케이션을 실행하는데 필요한 재작업 양을 줄이는 것이다. 확실히, 매번 같은 PHP 코드를 변환할 필요 없이, PHP 코드가 opcode로 변환된 후에, 원래 코드가 수정될 때까지 계속해서 공급 및 재사용 된다. 사실, 캐싱(caching)-중간 PHP 코드(opcode)를 저장 및 재사용하는 것-은 오픈 소스 Alternative PHP Cache (APC), Turck MMCache for PHP, XCache, eAccelerator, 그리고 상용 Zend Platform 등 여러 PHP 가속기들의 핵심 개념이다. 뒤에 세 가지는 바이트 코드를 캐싱 및 최적화 하면서, 더욱 빠른 속도를 제공한다.
이번 달에는 XCache를 설치, 전개, 설정하는 방법을 연구해 보자. XCache는 비교적 새로운 것으로서, 많은 사이트들은 이를 사용하여 좋은 결과를 얻고 있다. 게다가, PHP 확장으로 구현되기 때문에 구현, 설치, 설정이 쉽다. Apache와 PHP의 재컴파일이 필요하지 않다.
이 글은 XCache V1.2.0에 기반하고 있다. PHP V4.3.11에서 V4.4.4, PHP V5.1.x 에서 V5.2.x, 그리고 PHP V6의 초기 버전들을 지원하고 있다. (XCache는 PHP V5.0.x는 지원하지 않는다.) XCache는 Common Gateway Interface (CGI) 또는 명령행 PHP 인터프리터가 아닌, mod_php와 FastCGI를 사용하여 실행된다. XCache 소스 코드는 FreeBSD, Sun Solaris, Linux?, Mac OS X 등 다양한 시스템에서 구현된다. XCache는 Microsoft? Windows?에서도 구현될 수 있으며, Cygwin UNIX? 에뮬레이션 환경이나 Visual C를 사용한다. Cygwin 또는 원래의 Win32용 XCache를 구현할 수 있다. 마지막의 목표는 PHP의 공식 Win32 릴리스와의 호환성이다.
이 글에서 설명하는 데모는 Apache V2.2.3, PHP V5.2.0, XCache V1.2.0 (2006년 12월 10일 릴리스), Xcode V2.4.1 on Mac OS X V10.4.8 Tiger를 기반으로 한다. 하드웨어 플랫폼은 2-GHz Intel? Core Duo와 2 GB RAM을 갖춘 Apple MacBook이다.



위로


진행하기 전에, PHP는 그 자체로 실행되고, 여러분 쉘(Shell)의 PATHphpize가 있는 것을 확인한다. GNU Compiler Collection (GCC) 같은 C 컴파일러가 있어야 하고, makem4를 포함하고 있는 개발 툴 수트가 있어야 한다. Mac OS X에서, 무료 Xcode 소프트웨어 개발 환경은 필요한 빌드 툴을 제공한다.
 
 
 
 
 
전체 내용은 링크1에서 확인하세요
로컬용으로 VMware에 linux 설치후 apm셋팅 후 xcache를 설치해 봤습니다.
확실히 속도가 빨라지네요
[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

+
제목 글쓴이 날짜 조회
18년 전 조회 2,950
18년 전 조회 2,280
18년 전 조회 2,089
18년 전 조회 2,038
18년 전 조회 3,072
18년 전 조회 2,359
18년 전 조회 2,380
18년 전 조회 2,052
18년 전 조회 2,429
18년 전 조회 3,162
18년 전 조회 4,095
18년 전 조회 3,377
18년 전 조회 2,012
18년 전 조회 1,954
18년 전 조회 2,867
18년 전 조회 1,662
18년 전 조회 2,011
18년 전 조회 2,303
18년 전 조회 2,167
18년 전 조회 2,265
18년 전 조회 4,038
18년 전 조회 1,789
18년 전 조회 4,389
18년 전 조회 2,923
18년 전 조회 2,230
18년 전 조회 3,274
18년 전 조회 2,899
18년 전 조회 2,835
18년 전 조회 5,630
18년 전 조회 2,296
18년 전 조회 3,418
18년 전 조회 3,324
18년 전 조회 3,711
18년 전 조회 3,267
18년 전 조회 2,443
18년 전 조회 2,094
18년 전 조회 2,545
18년 전 조회 6,112
18년 전 조회 2,737
18년 전 조회 4,541
18년 전 조회 2,036
18년 전 조회 1만
18년 전 조회 2,486
18년 전 조회 1,549
18년 전 조회 2,985
18년 전 조회 2,926
18년 전 조회 2,823
18년 전 조회 2,139
18년 전 조회 2,319
18년 전 조회 2,871
18년 전 조회 2,964
18년 전 조회 4,127
18년 전 조회 6,117
18년 전 조회 2,054
18년 전 조회 2,189
18년 전 조회 1,896
18년 전 조회 1,656
18년 전 조회 2,631
18년 전 조회 1,688
18년 전 조회 1,560
18년 전 조회 4,734
18년 전 조회 1,787
18년 전 조회 1,840
18년 전 조회 1,848
18년 전 조회 1,973
18년 전 조회 3,627
18년 전 조회 1,651
18년 전 조회 1,524
18년 전 조회 1,356
18년 전 조회 1,859
18년 전 조회 1,906
18년 전 조회 3,650
18년 전 조회 1,979
18년 전 조회 3,114
18년 전 조회 4,738
18년 전 조회 2,869
18년 전 조회 8,049
18년 전 조회 4,060
18년 전 조회 2,740
18년 전 조회 1,520
18년 전 조회 2,626
18년 전 조회 5,041
18년 전 조회 5,219
18년 전 조회 2,095
18년 전 조회 4,355
18년 전 조회 4,096
18년 전 조회 4,149
18년 전 조회 2,272
18년 전 조회 4,192
18년 전 조회 2,174
18년 전 조회 3,285
18년 전 조회 4,918
18년 전 조회 1,954
18년 전 조회 3,412
18년 전 조회 1,643
18년 전 조회 2,741
18년 전 조회 1,671
18년 전 조회 2,712
18년 전 조회 2,552
18년 전 조회 1,556
🐛 버그신고