진서기

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

· 18년 전 · 2894
난이도 : 중급
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에서 이동 됨]
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
18년 전 조회 2,979
18년 전 조회 2,305
18년 전 조회 2,113
18년 전 조회 2,069
18년 전 조회 3,096
18년 전 조회 2,385
18년 전 조회 2,403
18년 전 조회 2,075
18년 전 조회 2,454
18년 전 조회 3,190
18년 전 조회 4,123
18년 전 조회 3,400
18년 전 조회 2,043
18년 전 조회 1,982
18년 전 조회 2,891
18년 전 조회 1,688
18년 전 조회 2,043
18년 전 조회 2,329
18년 전 조회 2,204
18년 전 조회 2,299
18년 전 조회 4,057
18년 전 조회 1,814
18년 전 조회 4,413
18년 전 조회 2,951
18년 전 조회 2,256
18년 전 조회 3,299
18년 전 조회 2,927
18년 전 조회 2,863
18년 전 조회 5,655
18년 전 조회 2,321
18년 전 조회 3,442
18년 전 조회 3,354
18년 전 조회 3,738
18년 전 조회 3,292
18년 전 조회 2,472
18년 전 조회 2,121
18년 전 조회 2,575
18년 전 조회 6,143
18년 전 조회 2,767
18년 전 조회 4,564
18년 전 조회 2,064
18년 전 조회 1만
18년 전 조회 2,507
18년 전 조회 1,571
18년 전 조회 3,015
18년 전 조회 2,956
18년 전 조회 2,848
18년 전 조회 2,163
18년 전 조회 2,347
18년 전 조회 2,895
18년 전 조회 2,986
18년 전 조회 4,159
18년 전 조회 6,139
18년 전 조회 2,078
18년 전 조회 2,210
18년 전 조회 1,922
18년 전 조회 1,677
18년 전 조회 2,658
18년 전 조회 1,706
18년 전 조회 1,582
18년 전 조회 4,763
18년 전 조회 1,813
18년 전 조회 1,869
18년 전 조회 1,877
18년 전 조회 1,996
18년 전 조회 3,649
18년 전 조회 1,675
18년 전 조회 1,554
18년 전 조회 1,381
18년 전 조회 1,883
18년 전 조회 1,929
18년 전 조회 3,673
18년 전 조회 2,003
18년 전 조회 3,145
18년 전 조회 4,763
18년 전 조회 2,896
18년 전 조회 8,074
18년 전 조회 4,085
18년 전 조회 2,772
18년 전 조회 1,546
18년 전 조회 2,648
18년 전 조회 5,067
18년 전 조회 5,242
18년 전 조회 2,123
18년 전 조회 4,373
18년 전 조회 4,120
18년 전 조회 4,175
18년 전 조회 2,293
18년 전 조회 4,221
18년 전 조회 2,199
18년 전 조회 3,309
18년 전 조회 4,940
18년 전 조회 1,977
18년 전 조회 3,445
18년 전 조회 1,665
18년 전 조회 2,763
18년 전 조회 1,697
18년 전 조회 2,740
18년 전 조회 2,578
18년 전 조회 1,582