진서기

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

· 18년 전 · 2879
난이도 : 중급
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,958
18년 전 조회 2,286
18년 전 조회 2,098
18년 전 조회 2,049
18년 전 조회 3,081
18년 전 조회 2,367
18년 전 조회 2,386
18년 전 조회 2,062
18년 전 조회 2,437
18년 전 조회 3,169
18년 전 조회 4,103
18년 전 조회 3,383
18년 전 조회 2,019
18년 전 조회 1,959
18년 전 조회 2,874
18년 전 조회 1,670
18년 전 조회 2,023
18년 전 조회 2,311
18년 전 조회 2,176
18년 전 조회 2,275
18년 전 조회 4,043
18년 전 조회 1,795
18년 전 조회 4,396
18년 전 조회 2,930
18년 전 조회 2,239
18년 전 조회 3,281
18년 전 조회 2,905
18년 전 조회 2,842
18년 전 조회 5,638
18년 전 조회 2,305
18년 전 조회 3,425
18년 전 조회 3,335
18년 전 조회 3,719
18년 전 조회 3,273
18년 전 조회 2,453
18년 전 조회 2,099
18년 전 조회 2,554
18년 전 조회 6,120
18년 전 조회 2,748
18년 전 조회 4,548
18년 전 조회 2,043
18년 전 조회 1만
18년 전 조회 2,493
18년 전 조회 1,558
18년 전 조회 2,991
18년 전 조회 2,934
18년 전 조회 2,831
18년 전 조회 2,147
18년 전 조회 2,330
18년 전 조회 2,880
18년 전 조회 2,970
18년 전 조회 4,137
18년 전 조회 6,122
18년 전 조회 2,063
18년 전 조회 2,198
18년 전 조회 1,905
18년 전 조회 1,663
18년 전 조회 2,640
18년 전 조회 1,691
18년 전 조회 1,565
18년 전 조회 4,740
18년 전 조회 1,795
18년 전 조회 1,849
18년 전 조회 1,857
18년 전 조회 1,981
18년 전 조회 3,635
18년 전 조회 1,658
18년 전 조회 1,532
18년 전 조회 1,364
18년 전 조회 1,870
18년 전 조회 1,913
18년 전 조회 3,656
18년 전 조회 1,982
18년 전 조회 3,124
18년 전 조회 4,745
18년 전 조회 2,879
18년 전 조회 8,058
18년 전 조회 4,065
18년 전 조회 2,751
18년 전 조회 1,528
18년 전 조회 2,633
18년 전 조회 5,047
18년 전 조회 5,228
18년 전 조회 2,104
18년 전 조회 4,363
18년 전 조회 4,103
18년 전 조회 4,157
18년 전 조회 2,280
18년 전 조회 4,201
18년 전 조회 2,182
18년 전 조회 3,291
18년 전 조회 4,927
18년 전 조회 1,961
18년 전 조회 3,419
18년 전 조회 1,650
18년 전 조회 2,751
18년 전 조회 1,680
18년 전 조회 2,721
18년 전 조회 2,561
18년 전 조회 1,565