진서기

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

· 18년 전 · 2886
난이도 : 중급
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,969
18년 전 조회 2,299
18년 전 조회 2,110
18년 전 조회 2,062
18년 전 조회 3,091
18년 전 조회 2,379
18년 전 조회 2,395
18년 전 조회 2,072
18년 전 조회 2,444
18년 전 조회 3,181
18년 전 조회 4,115
18년 전 조회 3,393
18년 전 조회 2,033
18년 전 조회 1,975
18년 전 조회 2,884
18년 전 조회 1,679
18년 전 조회 2,036
18년 전 조회 2,324
18년 전 조회 2,192
18년 전 조회 2,289
18년 전 조회 4,051
18년 전 조회 1,807
18년 전 조회 4,407
18년 전 조회 2,946
18년 전 조회 2,252
18년 전 조회 3,293
18년 전 조회 2,921
18년 전 조회 2,855
18년 전 조회 5,650
18년 전 조회 2,318
18년 전 조회 3,439
18년 전 조회 3,350
18년 전 조회 3,732
18년 전 조회 3,285
18년 전 조회 2,462
18년 전 조회 2,117
18년 전 조회 2,571
18년 전 조회 6,134
18년 전 조회 2,762
18년 전 조회 4,560
18년 전 조회 2,058
18년 전 조회 1만
18년 전 조회 2,504
18년 전 조회 1,568
18년 전 조회 3,009
18년 전 조회 2,947
18년 전 조회 2,842
18년 전 조회 2,156
18년 전 조회 2,340
18년 전 조회 2,887
18년 전 조회 2,981
18년 전 조회 4,149
18년 전 조회 6,134
18년 전 조회 2,073
18년 전 조회 2,208
18년 전 조회 1,915
18년 전 조회 1,675
18년 전 조회 2,652
18년 전 조회 1,701
18년 전 조회 1,573
18년 전 조회 4,757
18년 전 조회 1,810
18년 전 조회 1,863
18년 전 조회 1,871
18년 전 조회 1,989
18년 전 조회 3,646
18년 전 조회 1,669
18년 전 조회 1,545
18년 전 조회 1,375
18년 전 조회 1,878
18년 전 조회 1,926
18년 전 조회 3,669
18년 전 조회 2,000
18년 전 조회 3,138
18년 전 조회 4,758
18년 전 조회 2,892
18년 전 조회 8,067
18년 전 조회 4,077
18년 전 조회 2,766
18년 전 조회 1,540
18년 전 조회 2,646
18년 전 조회 5,060
18년 전 조회 5,239
18년 전 조회 2,115
18년 전 조회 4,372
18년 전 조회 4,115
18년 전 조회 4,170
18년 전 조회 2,290
18년 전 조회 4,213
18년 전 조회 2,191
18년 전 조회 3,300
18년 전 조회 4,938
18년 전 조회 1,972
18년 전 조회 3,435
18년 전 조회 1,660
18년 전 조회 2,762
18년 전 조회 1,690
18년 전 조회 2,736
18년 전 조회 2,574
18년 전 조회 1,577