http://blog.naver.com/kimbumsuc?Redirect=Log&logNo=80155677456
내용 요약
APC binaries for PHP 5.x (windows builds)
다운로드 관련
테스트 적용
File Cache Information
Cached Files | 1115 ( 54.0 MBytes) |
Hits | 181380 |
Misses | 1590 |
Request Rate (hits, misses) | 2.38 cache requests/second |
Hit Rate | 2.36 cache requests/second |
Miss Rate | 0.02 cache requests/second |
Insert Rate | 0.02 cache requests/second |
Cache full count | 0 |
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를 끄던가.