LS2에 APC 적용하기
새벽늑대님께서 APC 설치법을 올리셨길래.. LS2에도 적용해봤습니다.
저는 새벽늑대님보다 더 불친절하니 친절한 주석은 없습니다.
제 환경은 apache 1.34 php 5.20 이고, apt-get install 로 설치한 것입니다.
먼저 필요한 APC를 다운 받습니다.
http://pecl.php.net/package/APC
APC를 설치하기에 필요한 파일을 확인 합니다.
whereis phpize
whereis php-config
whereis apxs
위의 세 파일이 있어야 DSO 모드로 apc를 설치할 수 있습니다. apache, php를 소스로 설치했다면 그에 맞게 하시면 될겁니다.
phpize, php-config는 php5-dev에 들어있습니다. php4 버전도 비슷할 겁니다. apxs는 apache-dev에 있습니다. 위의 파일이 없다면 apt-get install php5-dev, apache-dev로 설치하세요.
이제 다운받은 APC의 압축을 해제하고 설치합니다. 설치 과정은 다음과 같습니다.
tar xzvf APC-3.0.16.tgz
cd APC-3.0.16
phpize
./configure --enable-apc --enable-apc-mmap -with-apxs=/usr/bin/apxs --with-php-config=/usr/bin/php-config
make
make install
apc.so가 /usr/lib/php5/20060613+lfs/ 에 복사되었는지 확인합니다. php4 버전이면 위치가 틀릴것입니다.
/etc/php5/conf.d/apc.ini 파일을 다음과 같이 작성합니다.
extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
/etc/init.d/apache restart 로 재시동합니다.
phpinfo에 apc 항목이 있으면 성공입니다.
-----------------------------------------------
설치후 ab 테스트
제로보드 3 버전에 올린 글을 가지고 테스트. html 크기는 8403 bytes 입니다.
간단히 설명하면 적용시 100번 보는데 10초 미적용시 100번 보는데 37초 정도 걸렸다는 겁니다.
설치후 적용시
Concurrency Level: 1
Time taken for tests: 9.990952 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 876200 bytes
HTML transferred: 840300 bytes
Requests per second: 10.01 [#/sec] (mean)
설치후 미적용시
Concurrency Level: 1
Time taken for tests: 37.344788 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 876200 bytes
HTML transferred: 840300 bytes
Requests per second: 2.68 [#/sec] (mean)
--------------
php4 버전의 경우 configure 전에
export CPPFLAGS="-I/usr/include/apache-1.3 -DAPC_PHP4_STAT" 를 하는 것이 최적화를 위해서 더 좋다는데 저는 php5를 쓰므로 확인은 해보지 않았습니다. 설치에 관한 다른 사항은 INSTALL 파일을 참조하세요.