[펌]PHP accelerator 선택 (APC, eAccelerator, XCache, Nusphere PhpExpress, Zend Optimizer+)

http://blog.naver.com/kimbumsuc?Redirect=Log&logNo=80155677456

내용 요약

APC binaries for PHP 5.x (windows builds)


http://dev.freshsite.pl/php-accelerators/apc.html



다운로드 관련
http://downloads.php.net/pierre/



테스트 적용

  • File Cache Information

    Cached Files1115 ( 54.0 MBytes)
    Hits181380
    Misses1590
    Request Rate (hits, misses)2.38 cache requests/second
    Hit Rate2.36 cache requests/second
    Miss Rate0.02 cache requests/second
    Insert Rate0.02 cache requests/second
    Cache full count0

Host Status Diagrams

Memory Usage
(multiple slices indicate fragments)
Hits & Misses
 Free: 201.8 MBytes (78.8%) Hits: 181380 (99.1%)
 Used: 54.2 MBytes (21.2%) Misses: 1590 (0.9%)


1000여개의 파일이고 54MB 사이즈를 가지고 있고
99%의 HIT률을 보인다.

좋구나.


APC 튜닝 포인트
  • apc.shm_size=256M //쉐어드메모리 사이즈: 너무 작으면 단편화가 너무 많이 생긴다. HITS보다 MISS가 더 생실 수 있으니, 넉넉히...
  • apc.stat=1 //0으로 하면 CPU사용률이 조금 내려가지만, 소스파일 수정을 체크하지 않는다. 즉, 그냥 1로 두어라.
  • apc.include_once_override=0 //1로 하면 APC에서 include_once(require_once)를 처리한다. CPU사용률이 꽤 내려가지만, PHP의 소스 작성에 따라서 에러가 발생할 수 있다.
  • apc.shm_size를 넉넉히 하고
    apc.stat=1
    apc.include_once_override=0
    일 때 CPU IDLE이 56 정도였는데
    apc.include_once_override=1로 바꾸니 거의 70까지 CPU IDLE이 높아졌다.


알아낸 버그
  • include_once 할 때 경로를 같게하라.
    • 한쪽에서는 절대경로, 한쪽에서는 상대 경로로 할경우 class 를 찾을 수 없다는 에러가 발생할 수 있다.(APC 3.1.9 버전에서 확인)
    • 해결법은 상대 경로일 경우
      include_once('../../lib/class.CCCC.php');
      ->
      include_once(dirname(__FILE_).'/../../lib/class.CCCC.php');
      처럼 바꿔서 전부 절대경로를 사용하도록 한다.
    • 아니면 APC를 끄던가.
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자